Funzione KeInsertDeviceQueue (wdm.h)

La routine KeInsertDeviceQueue acquisisce il blocco spin per l'oggetto coda del dispositivo 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 della coda del dispositivo di tipo per il quale il chiamante fornisce l'archiviazione.

[in, out] DeviceQueueEntry

Puntatore alla voce della coda del dispositivo da inserire.

Valore restituito

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

Commenti

Se la coda del dispositivo è impostata su uno stato occupato, il dispositivo DeviceQueueEntry specificato viene inserito nella parte finale della coda del dispositivo e viene rilasciato il blocco di 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 oKeInsertByKeyDeviceQueue quando la coda è vuota causa la modifica della coda del dispositivo 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

   
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), MarkQueuedIrps(wdm)

Vedi anche

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue