Función WdfIoTargetWdmGetTargetDeviceObject (wdfiotarget.h)

[Solo se aplica a KMDF]

El método WdfIoTargetWdmGetTargetDeviceObject devuelve un puntero al objeto de dispositivo modelo de controlador de Windows (WDM) asociado a un destino de E/S local o remoto especificado.

Sintaxis

PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
  [in] WDFIOTARGET IoTarget
);

Parámetros

[in] IoTarget

Identificador de un objeto de destino de E/S local o remoto que se obtuvo de una llamada anterior a WdfDeviceGetIoTarget o WdfIoTargetCreate o desde un método que proporciona un destino de E/S especializado.

Valor devuelto

WdfIoTargetWdmGetTargetDeviceObject devuelve un puntero a una estructura de DEVICE_OBJECT WDM.

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Comentarios

La mayoría de los controladores basados en marcos no necesitan acceder al objeto de dispositivo WDM de un destino de E/S.

El puntero que devuelve el método WdfIoTargetWdmGetTargetDeviceObject es válido hasta que el controlador llama a WdfIoTargetClose o WdfIoTargetCloseForQueryRemove o hasta que se elimine el objeto de destino de E/S remoto. Si el controlador proporciona una función EvtCleanupCallback para el objeto de destino de E/S remoto y si el objeto se elimina antes de cerrar el destino de E/S remoto, el puntero es válido hasta que la función EvtCleanupCallback devuelve.

Si el controlador intenta acceder al objeto de dispositivo WDM después de que se haya quitado, el controlador puede hacer que el sistema se bloquee. En el ejemplo de toastmon se muestra cómo el controlador puede proporcionar una función de devolución de llamada EvtIoTargetQueryRemove para que se notifique si se quita el destino de E/S.

Para obtener más información sobre WdfIoTargetWdmGetTargetDeviceObject, vea Obtener información sobre un destino de E/S general.

Para obtener más información sobre los destinos de E/S, consulte Uso de destinos de E/S.

Ejemplos

En el ejemplo de código siguiente se comprueba la estructura de DEVICE_OBJECT WDM de un destino de E/S para comprobar que el destino admite operaciones de E/S directas.

if (!((WdfIoTargetWdmGetTargetDeviceObject(Adapter->IoTarget))->Flags
 & DO_DIRECT_IO)) {
    ASSERTMSG("Target device doesn't support direct I/O\n", FALSE);
    return STATUS_INVALID_DEVICE_REQUEST;
}

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Encabezado wdfiotarget.h (incluya Wdf.h)
Library Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
IRQL <=DISPATCH_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Consulte también

DEVICE_OBJECT

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetWdmGetTargetFileHandle

WdfIoTargetWdmGetTargetFileObject