USBFN_GET_ATTACH_ACTION funzione di callback (usbfnattach.h)
Implementazione del driver di filtro che viene richiamata quando il caricabatterie è collegato alla porta.
Sintassi
USBFN_GET_ATTACH_ACTION UsbfnGetAttachAction;
NTSTATUS UsbfnGetAttachAction(
[in] PVOID Context,
[out] PUSBFN_ON_ATTACH OnAttach
)
{...}
Parametri
[in] Context
Puntatore a un contesto definito dal driver.
[out] OnAttach
Puntatore a una struttura USBFN_ON_ATTACH allocata dal chiamante che il driver popola con il tipo di connessione e porta.
Valore restituito
Se l'operazione ha esito positivo, la funzione di callback deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(status) è TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(status) è uguale a FALSE.
Osservazioni
Per supportare il rilevamento di collegamento e scollegamento, il driver di filtro inferiore USB deve pubblicarne il supporto. Durante il processo di pubblicazione, il driver registra anche l'implementazione di questa funzione di callback. Per altre informazioni, vedere driver di filtro USB per supportare i caricabatterie proprietari.
Esempi
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;
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Finestre |
versione minima di KMDF | 1.0 |
versione minima di UMDF | 2.0 |
intestazione | usbfnattach.h |
IRQL | PASSIVE_LEVEL |
Vedere anche
driver di filtro USB per supportare i caricabatterie proprietari