Método IWDFIoTargetStateManagement::Stop (wudfddi.h)
[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.
El método Stop detiene el envío de solicitudes en cola a un destino de E/S local.
Sintaxis
HRESULT Stop(
[in] WDF_IO_TARGET_SENT_IO_ACTION Action
);
Parámetros
[in] Action
Valor WDF_IO_TARGET_SENT_IO_ACTION tipado que identifica cómo controlar la E/S enviada cuando se detiene el objeto de destino de E/S.
Valor devuelto
Detener siempre devuelve S_OK.
Comentarios
Si el controlador puede detectar errores de dispositivo recuperables, es posible que quiera que el controlador llame a Stop para detener temporalmente el envío de solicitudes al destino de E/S local y, después, llame a IWDFIoTargetStateManagement::Start para reanudar el envío de solicitudes.
Además, si un controlador llama a IWDFUsbTargetPipe2::ConfigureContinuousReader para configurar un lector continuo para una canalización USB, la función de devolución de llamada IPnpCallback::OnD0Exit del controlador debe llamar a Stop para detener el lector.
Si un controlador ha llamado a Stop, todavía puede enviar una solicitud al destino estableciendo la marca WDF_REQUEST_OPTION_IGNORE_TARGET_STATE cuando llama a IWDFIoRequest::Send. Si un controlador establece esta marca, el controlador puede enviar una solicitud, como una solicitud para restablecer una canalización USB (consulte IWDFUsbTargetPipe::Reset), a un dispositivo después de llamar al controlador Stop.
El controlador debe llamar a IWDFIoTargetStateManagement::Start y Detener de forma sincrónica. Después de que el controlador llame a una de estas funciones, no debe llamar a ninguna de las dos funciones antes de que se devuelva la primera llamada.
El controlador puede llamar a Stop varias veces sin llamar a IWDFIoTargetStateManagement::Start. Por ejemplo, el controlador podría hacer lo siguiente:
- Llame a Stop y especifique un valor action de WdfIoTargetLeaveSentIoPending.
- Determine si el destino debe reanudar el procesamiento de solicitudes de E/S.
- Si el destino debe reanudarse, llame a IWDFIoTargetStateManagement::Start. De lo contrario, llame a Stop de nuevo con un valor Action de WdfIoTargetCancelSentIo.
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 muestra cómo una función de devolución de llamada IPnpCallback::OnD0Exit puede llamar a Stop, si el controlador usa un lector continuo para una canalización USB. (Para ver cómo obtener la interfaz IWDFIoTargetStateManagement , vea el ejemplo de código en IWDFIoTargetStateManagement::Start).
HRESULT
CMyDevice::OnD0Exit(
__in IWDFDevice* pWdfDevice,
__in WDF_POWER_DEVICE_STATE previousState
)
{
HRESULT hr;
hr = m_pIoTargetInterruptPipeStateMgmt->Stop(WdfIoTargetCancelSentIo);
return hr;
}
Requisitos
Requisito | Value |
---|---|
Finalización del soporte técnico | No disponible en UMDF 2.0 y versiones posteriores. |
Plataforma de destino | Escritorio |
Versión mínima de UMDF | 1.5 |
Encabezado | wudfddi.h (incluya Wudfddi.h) |
Archivo DLL | WUDFx.dll |