Microsoft Usbccid Smartcard Reader -umdf 2- Driver -

// Get USB pipes m_BulkOutPipe = WdfUsbInterfaceGetConfiguredPipe(m_UsbInterface, 0, NULL); m_BulkInPipe = WdfUsbInterfaceGetConfiguredPipe(m_UsbInterface, 1, NULL); m_InterruptPipe = WdfUsbInterfaceGetConfiguredPipe(m_UsbInterface, 2, NULL);

return SendCcidCommand(&powerOnCmd, sizeof(powerOnCmd), Atr, AtrLength);

[Manufacturer] %ManufacturerName% = Standard, NTamd64, NTarm64

return SendCcidCommandWithData(&transmitCmd, sizeof(transmitCmd), Command, CommandLen, Response, ResponseLen); microsoft usbccid smartcard reader -umdf 2- driver

NTSTATUS UsbCcidDevice::ConfigureUsbTarget() WDF_USB_DEVICE_CREATE_CONFIG usbConfig; WDF_USB_DEVICE_SELECT_CONFIG_PARAMS configParams; NTSTATUS status;

NTSTATUS UsbCcidDevice::Transmit(PBYTE Command, DWORD CommandLen, PBYTE Response, PDWORD ResponseLen) CCID_TRANSMIT transmitCmd = 0; transmitCmd.bMessageType = PC_to_RDR_XfrBlock; transmitCmd.dwLength = CommandLen; transmitCmd.bSlot = 0; transmitCmd.bSeq = 0; transmitCmd.bBWI = 0; transmitCmd.wLevelParameter = 0;

[UsbCcidReader_Install.NT.Services] AddService=WudfUsbCcidReader,0x000001fa,WudfServiceInstall [Manufacturer] %ManufacturerName% = Standard

[UMDFDriverCopyFiles] UsbCcidReader.dll

[UsbCcidReader_Install.NT.Wdf] UmdfService=UsbCcidReaderService,UsbCcidReader_Install UmdfServiceOrder=UsbCcidReaderService

NTSTATUS UsbCcidDevice::PowerOn(PBYTE Atr, PDWORD AtrLength) CCID_POWER_ON powerOnCmd = 0; powerOnCmd.bMessageType = PC_to_RDR_IccPowerOn; powerOnCmd.dwLength = 0; powerOnCmd.bSlot = 0; powerOnCmd.bSeq = 0; powerOnCmd.bPowerSelect = CCID_POWER_ON; NTarm64 return SendCcidCommandWithData(&transmitCmd

[WudfServiceInstall] DisplayName=%ServiceDesc% ServiceType=1 StartType=3 ErrorControl=1 ServiceBinary=%12%\WUDFHost.exe

[Standard.NTarm64] %DeviceDesc% = UsbCcidReader_Install, USB\VID_xxxx&PID_xxxx

// Callbacks static void EvtDevicePrepareHardware(_In_ WDFDEVICE Device, _In_ WDFCMRESLIST ResourceList); static void EvtDeviceReleaseHardware(_In_ WDFDEVICE Device, _In_ WDFCMRESLIST ResourceList); static void EvtIoDeviceControl(_In_ WDFQUEUE Queue, _In_ WDFREQUEST Request, _In_ size_t OutputBufferLength, _In_ size_t InputBufferLength, _In_ ULONG IoControlCode); private: WDFDEVICE m_Device; WDFUSBDEVICE m_UsbDevice; WDFUSBINTERFACE m_UsbInterface; WDFUSBPIPE m_BulkOutPipe; WDFUSBPIPE m_BulkInPipe; WDFUSBPIPE m_InterruptPipe; WDFQUEUE m_DefaultQueue; ; #include "Device.h" #include "trace.h" NTSTATUS UsbCcidDevice::Create(WDFDRIVER Driver, WDFDEVICE_INIT* DeviceInit, WDFDEVICE* Device) WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS idleSettings; WDF_PNPPOWER_EVENT_CALLBACKS pnpCallbacks; WDF_IO_QUEUE_CONFIG queueConfig; WDF_OBJECT_ATTRIBUTES deviceAttributes; WDFDEVICE device; NTSTATUS status;

// Set PnP callbacks WDF_PNPPOWER_EVENT_CALLBACKS_INIT(&pnpCallbacks); pnpCallbacks.EvtDevicePrepareHardware = EvtDevicePrepareHardware; pnpCallbacks.EvtDeviceReleaseHardware = EvtDeviceReleaseHardware; WdfDeviceInitSetPnpPowerEventCallbacks(DeviceInit, &pnpCallbacks);

[Standard.NTamd64] %DeviceDesc% = UsbCcidReader_Install, USB\VID_xxxx&PID_xxxx

Back
Top Bottom

Welcome, guest!

Due to security measures and to protect our exclusive content, full site access is restricted for guests.

Log in to unlock full access to all materials and archives, and get access to special tools.

🚫 Access Restricted!

Content copying is restricted to VIP members only.

Subscribe