Funzione WdfIoTargetCloseForQueryRemove (wdfiotarget.h)
[Si applica a KMDF e UMDF]
Il metodo WdfIoTargetCloseForQueryRemove chiude temporaneamente una destinazione di I/O remota specificata perché il dispositivo di destinazione potrebbe essere presto rimosso.
Sintassi
void WdfIoTargetCloseForQueryRemove(
[in] WDFIOTARGET IoTarget
);
Parametri
[in] IoTarget
Handle per un oggetto di destinazione di I/O remoto ottenuto da una chiamata precedente a WdfIoTargetCreate.
Valore restituito
nessuno
Osservazioni
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
I driver che forniscono una funzione di callback EvtIoTargetQueryRemove devono chiamare WdfIoTargetCloseForQueryRemove dall'interno di tale funzione di callback, se il driver determina che il dispositivo di destinazione può essere rimosso in modo sicuro.
Per altre informazioni su WdfIoTargetCloseForQueryRemove, vedere Controllo dello stato di una destinazione di I/O generale.
Per altre informazioni sulle destinazioni di I/O, vedere Uso delle destinazioni di I/O.
Esempio
L'esempio di codice seguente è la funzione di callback EvtIoTargetQueryRemove del driver di esempio Tostapane . La funzione arresta un timer, verifica che sia stato eseguito il servizio di un elemento di lavoro inviato in precedenza e quindi chiami WdfIoTargetCloseForQueryRemove.
NTSTATUS
ToastMon_EvtIoTargetQueryRemove(
WDFIOTARGET IoTarget
)
{
PTARGET_DEVICE_INFO targetDeviceInfo = NULL;
//
// Get I/O target object's context space.
//
targetDeviceInfo = GetTargetDeviceInfo(IoTarget);
//
// Stop the timer and wait for any outstanding work items
// to finish before closing the target.
//
WdfTimerStop(targetDeviceInfo->TimerForPostingRequests, TRUE);
WdfWorkItemFlush(targetDeviceInfo->WorkItemForPostingRequests);
WdfIoTargetCloseForQueryRemove(IoTarget);
return STATUS_SUCCESS;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfiotarget.h (include Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |