USBFN_GET_ATTACH_ACTION función de devolución de llamada (usbfnattach.h)
Implementación del controlador de filtro que se invoca cuando el cargador está conectado al puerto.
Sintaxis
USBFN_GET_ATTACH_ACTION UsbfnGetAttachAction;
NTSTATUS UsbfnGetAttachAction(
[in] PVOID Context,
[out] PUSBFN_ON_ATTACH OnAttach
)
{...}
Parámetros
[in] Context
Puntero a un contexto definido por el controlador.
[out] OnAttach
Puntero a una estructura de USBFN_ON_ATTACH asignada por el autor de la llamada que el controlador rellena con el tipo de conexión y puerto.
Valor devuelto
Si la operación se realiza correctamente, la función de devolución de llamada debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) es igual a TRUE. De lo contrario, debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.
Comentarios
Para admitir la conexión y desasociación, el controlador de filtro inferior USB debe publicar su compatibilidad. Durante el proceso de publicación, el controlador también registra su implementación de esta función de devolución de llamada. Para obtener más información, consulte Controlador de filtro USB para admitir cargadores propietarios.
Ejemplos
NTSTATUS
UsbLowerFilter_GetAttachAction(
__in PVOID Context,
__out PUSBFN_ON_ATTACH OnAttach
)
{
NTSTATUS Status;
PPDCP_CONTEXT PdcpContext = NULL;
LARGE_INTEGER Timeout;
PAGED_CODE();
// Get driver context
PdcpContext = DeviceGetUsbLowerFilterContext((WDFDEVICE)Context);
// Clear the event
KeClearEvent(&PdcpContext->AbortAttachOperation);
// Wait for a while
Timeout.QuadPart = WDF_REL_TIMEOUT_IN_MS(PdcpContext->DetectionDelayInms);
Status = KeWaitForSingleObject(
&PdcpContext->AbortAttachOperation,
Executive,
KernelMode,
FALSE,
&Timeout);
switch (Status)
{
case STATUS_SUCCESS:
// The abort event was set.
Status = STATUS_REQUEST_ABORTED;
break;
case STATUS_TIMEOUT:
Status = STATUS_SUCCESS;
break;
default:
break;
}
if (NT_SUCCESS(Status))
{
OnAttach->AttachAction = PdcpContext->CurrentAttachAction;
OnAttach->PortType = PdcpContext->CurrentPortType;
}
return Status;
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | usbfnattach.h |
IRQL | PASSIVE_LEVEL |
Consulte también
Controlador de filtro USB para admitir cargadores propietarios