Funzione KeInsertDeviceQueue (wdm.h)

La routine KeInsertDeviceQueue acquisisce il blocco di selezione per l'oggetto coda di dispositivi specificato e, se la coda del dispositivo è impostata su uno stato occupato, accoda la voce specificata.

Sintassi

BOOLEAN KeInsertDeviceQueue(
  [in, out] PKDEVICE_QUEUE       DeviceQueue,
  [in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);

Parametri

[in, out] DeviceQueue

Puntatore a un oggetto controllo di tipo coda del dispositivo per cui il chiamante fornisce la risorsa di archiviazione.

[in, out] DeviceQueueEntry

Puntatore alla voce della coda del dispositivo da inserire.

Valore restituito

Se la coda del dispositivo è vuota, viene restituito FALSE e DeviceQueueEntry non viene inserito nella coda del dispositivo.

Commenti

Se la coda del dispositivo è impostata su uno stato occupato, l'oggetto DeviceQueueEntry specificato viene inserito nella parte finale della coda del dispositivo e viene rilasciato il blocco spin della coda del dispositivo.

Se KeInsertDeviceQueue restituisce FALSE, la voce non è stata accodata e il chiamante deve iniziare a elaborare l'IRP. Una chiamata a KeInsertDeviceQueue o KeInsertByKeyDeviceQueue quando la coda è vuota fa sì che la coda del dispositivo cambi da uno stato non occupato a uno stato occupato.

Questa routine è per il codice che accoda una richiesta di I/O a un driver di dispositivo.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm)

Vedi anche

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue