RequestForUrbXrb rule (kmdf)

If the client driver calls WdfUsbTargetDeviceCreateWithParameters and specifies the client contract version USBD_CLIENT_CONTRACT_VERSION_602 in the WDF_USB_DEVICE_CREATE_CONFIG structure (to use the new capabilities of the USB driver stack for Windows 8), DDIs that use a URB internally would only use URB context if any of the following preconditions apply:

  • Request parameter has the Wdf device in its parent object tree.
  • Request is represented via the I/O queue.
  • Request has another I/O queue represented request in its parent object tree.

Driver model: KMDF

How to test

At compile time

Run Static Driver Verifier and specify the RequestForUrbXrb rule.

Use the following steps to run an analysis of your code:
  1. Prepare your code (use role type declarations).
  2. Run Static Driver Verifier.
  3. View and analyze the results.

For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Applies to

WdfRequestCreate WdfUsbTargetDeviceCreateWithParameters WdfUsbTargetDeviceFormatRequestForControlTransfer WdfUsbTargetDeviceFormatRequestForString WdfUsbTargetDeviceSendControlTransferSynchronously WdfUsbTargetPipeAbortSynchronously WdfUsbTargetPipeFormatRequestForAbort WdfUsbTargetPipeFormatRequestForReset WdfUsbTargetPipeResetSynchronously