Método IWDFIoTargetStateManagement::Start (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 Start comienza a enviar solicitudes en cola a un destino de E/S local.
Sintaxis
HRESULT Start();
Valor devuelto
Start devuelve S_OK si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los códigos de error:
Código devuelto | Descripción |
---|---|
|
Se ha quitado el dispositivo. |
Este método puede devolver uno de los otros códigos de error que define Winerror.h.
Comentarios
Si el controlador puede detectar errores de dispositivo recuperables, es posible que quiera que el controlador llame a IWDFIoTargetStateManagement::Stop para detener temporalmente el envío de solicitudes al destino de E/S local y, después, llame a Iniciar 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::OnD0Entry del controlador debe llamar a Start para iniciar el lector.
El controlador debe llamar a Start e IWDFIoTargetStateManagement::Stop de forma sincrónica. Después de que el controlador llame a una de estas funciones, no debe llamar a la otra función antes de que vuelva la primera.
Para obtener más información sobre Start, vea Controlar el estado de un destino de E/S general en UMDF.
Para obtener más información sobre los destinos de E/S, consulte Uso de destinos de E/S en UMDF.
Ejemplos
En el ejemplo de código siguiente se muestra primero cómo un controlador puede obtener la interfaz IWDFIoTargetStateManagement para un objeto de canalización USB. A continuación, el ejemplo de código muestra cómo una función de devolución de llamada IPnpCallback::OnD0Entry puede llamar a Start, si el controlador usa un lector continuo para la canalización USB.
IWDFIoTargetStateManagement * m_pIoTargetInterruptPipeStateMgmt = NULL;
IWDFUsbTargetFactory * pIUsbTargetFactory = NULL;
IWDFUsbTargetDevice * pIUsbTargetDevice = NULL;
IWDFUsbInterface * pIUsbInterface = NULL;
IWDFUsbTargetPipe * pIUsbPipe = NULL;
hr = m_FxDevice->QueryInterface(IID_PPV_ARGS(&pIUsbTargetFactory));
if (FAILED(hr))
{...}
hr = pIUsbTargetFactory->CreateUsbTargetDevice(&pIUsbTargetDevice);
if (FAILED(hr))
{...}
hr = pIUsbTargetDevice->RetrieveUsbInterface(0, &pIUsbInterface);
if (FAILED(hr))
{...}
NumEndPoints = pIUsbInterface->GetNumEndPoints();
for (UCHAR PipeIndex = 0; PipeIndex < NumEndPoints; PipeIndex++)
{
hr = pIUsbInterface->RetrieveUsbPipeObject(PipeIndex, &pIUsbPipe);
if (FAILED(hr))
{...}
else
{
if (pIUsbPipe->IsInEndPoint())
{
if (UsbdPipeTypeInterrupt == pIUsbPipe->GetType())
{
m_pIUsbInterruptPipe = pIUsbPipe;
hr = m_pIUsbInterruptPipe->QueryInterface(IID_PPV_ARGS(&m_pIoTargetInterruptPipeStateMgmt));
if (FAILED(hr))
{...}
}
}
}
}
HRESULT
CMyDevice::OnD0Entry(
__in IWDFDevice* pWdfDevice,
__in WDF_POWER_DEVICE_STATE previousState
)
{
...
m_pIoTargetInterruptPipeStateMgmt->Start();
...
return S_OK;
}
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 |