Microsoft Usbccid Smartcard Reader -umdf 2- Driver -
return STATUS_SUCCESS;
[Manufacturer] %ManufacturerName% = Standard, NTamd64, NTarm64 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; [Manufacturer] %ManufacturerName% = Standard
NTSTATUS Initialize(); NTSTATUS ConfigureUsbTarget(); NTSTATUS CreateIoQueues(); default: status = STATUS_INVALID_DEVICE_REQUEST
switch (IoControlCode) case IOCTL_SMARTCARD_POWER: // Handle power control status = context->HandlePowerControl(Request); break; case IOCTL_SMARTCARD_TRANSMIT: // Handle APDU transmit status = context->HandleTransmit(Request); break; case IOCTL_SMARTCARD_GET_STATE: // Get slot status status = context->HandleGetStatus(Request); break; default: status = STATUS_INVALID_DEVICE_REQUEST; break;
// CCID Commands NTSTATUS PowerOn(_Out_ PBYTE Atr, _Out_ PDWORD AtrLength); NTSTATUS PowerOff(); NTSTATUS Transmit(_In_ PBYTE Command, _In_ DWORD CommandLen, _Out_ PBYTE Response, _Inout_ PDWORD ResponseLen); NTSTATUS GetSlotStatus(_Out_ PDWORD Status);
void UsbCcidDevice::EvtIoDeviceControl(WDFQUEUE Queue, WDFREQUEST Request, size_t OutputBufferLength, size_t InputBufferLength, ULONG IoControlCode) WDFDEVICE device = WdfIoQueueGetDevice(Queue); UsbCcidDevice* context = GetDeviceContext(device); NTSTATUS status = STATUS_NOT_SUPPORTED;