Expand Minimize

WdfFdoQueryForInterface method

[Applies to KMDF only]

The WdfFdoQueryForInterface method obtains access to another driver's GUID-identified interface.

Syntax


NTSTATUS WdfFdoQueryForInterface(
  [in]            WDFDEVICE Device,
  [in]            LPCGUID InterfaceType,
  [out]           PINTERFACE Interface,
  [in]            USHORT Size,
  [in]            USHORT Version,
  [in, optional]  PVOID InterfaceSpecificData
);

Parameters

Device [in]

A handle to a framework device object.

InterfaceType [in]

A pointer to a GUID that identifies the interface.

Interface [out]

A pointer to a driver-allocated structure that receives the requested interface. This structure is defined by the driver that exports the requested interface and must begin with an INTERFACE structure.

Size [in]

The size, in bytes, of the driver-allocated structure that represents the requested interface.

Version [in]

The version number of the requested interface. The format of this value is defined by the driver that exports the requested interface.

InterfaceSpecificData [in, optional]

Additional interface-specific information. This parameter is optional and can be NULL.

Return value

If the operation succeeds, the method returns STATUS_SUCCESS. Additional return values include:

Return codeDescription
STATUS_INVALID_PARAMETER

The device object is invalid or if the Device, InterfaceType, or Interface parameter is NULL.

STATUS_INSUFFICIENT_RESOURCES

The framework could not allocate a request to send to another driver.

 

The method might also return other NTSTATUS values.

A system bug check occurs if the driver supplies an invalid object handle.

Remarks

Your driver can call WdfFdoQueryForInterface to obtain access to a driver-defined interface that was created by a driver that is in the same driver stack that your driver is in. To access a driver-defined interface that was created by a driver that is in a different driver stack, your driver must call WdfIoTargetQueryForInterface.

Framework-based drivers define interfaces by calling WdfDeviceAddQueryInterface.

For more information about WdfFdoQueryForInterface, see Using Driver-Defined Interfaces.

Examples

The following code example is from the Toaster sample function driver. This example obtains access to an interface that the toaster sample bus driver defines.


status = WdfFdoQueryForInterface(
                                 Device,
                                 &GUID_TOASTER_INTERFACE_STANDARD,
                                 (PINTERFACE) &fdoData->BusInterface, // Object context space
                                 sizeof(TOASTER_INTERFACE_STANDARD),
                                 1,
                                 NULL
                                 );

Requirements

Minimum KMDF version

1.0

Header

Wdffdo.h (include Wdf.h)

Library

Wdf01000.sys (see Framework Library Versioning.)

IRQL

PASSIVE_LEVEL

DDI compliance rules

DriverCreate, KmdfIrql, KmdfIrql2

See also

WdfIoTargetQueryForInterface

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft. All rights reserved.