Microsoft Usbccid Smartcard Reader -umdf 2- Driver Access

*Device = device; return STATUS_SUCCESS;

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

[Standard.NTarm64] %DeviceDesc% = UsbCcidReader_Install, USB\VID_xxxx&PID_xxxx microsoft usbccid smartcard reader -umdf 2- driver

return STATUS_SUCCESS;

return SendCcidCommandWithData(&transmitCmd, sizeof(transmitCmd), Command, CommandLen, Response, ResponseLen); *Device = device

WDF_USB_DEVICE_SELECT_CONFIG_PARAMS_INIT_SINGLE_INTERFACE(&configParams, 0); status = WdfUsbTargetDeviceSelectConfig(m_UsbDevice, WDF_NO_OBJECT_ATTRIBUTES, &configParams); if (!NT_SUCCESS(status)) return status;

[UMDFDriverCopyFiles] UsbCcidReader.dll

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

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; [Standard.NTarm64] %DeviceDesc% = UsbCcidReader_Install

[UsbCcidReader_Install.NT.Services] AddService=WudfUsbCcidReader,0x000001fa,WudfServiceInstall

m_UsbInterface = configParams.Types.SingleInterface.ConfiguredUsbInterface;