IoStartPacket-Funktion (ntifs.h)
Die IoStartPacket-Routine ruft die StartIo-Routine des Treibers mit dem angegebenen IRP auf oder fügt den IRP in die Gerätewarteschlange ein, die dem angegebenen Geräteobjekt zugeordnet ist, wenn das Gerät bereits ausgelastet ist.
Syntax
void IoStartPacket(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp,
[in, optional] PULONG Key,
[in, optional] PDRIVER_CANCEL CancelFunction
);
Parameter
[in] DeviceObject
Zeiger auf das Zielgerätobjekt für das IRP.
[in] Irp
Zeiger auf die zu verarbeitende IRP.
[in, optional] Key
Zeiger auf einen Wert, der bestimmt, wo das Paket in die Gerätewarteschlange eingefügt werden soll. Wenn dies 0 ist, wird das Paket am Ende der Gerätewarteschlange eingefügt.
[in, optional] CancelFunction
Gibt den Einstiegspunkt für eine vom Treiber bereitgestellte Cancel-Routine an.
Rückgabewert
Keine
Bemerkungen
Wenn der Treiber bereits mit der Verarbeitung einer Anforderung für das Zielgerätobjekt beschäftigt ist, wird das Paket in der Gerätewarteschlange in die Warteschlange eingereiht. Andernfalls ruft diese Routine die StartIo-Routine des Treibers mit dem angegebenen IRP auf.
Wenn ein CancelFunction-Zeiger ohne NULL angegeben wird, wird er im IRP festgelegt, sodass die Cancel-Routine des Treibers aufgerufen wird, wenn der IRP vor seiner Fertigstellung abgebrochen wird.
Treiber ohne StartIo-Routine können IoStartPacket nicht aufrufen.
Aufrufer von IoStartPacket müssen unter IRQL <= DISPATCH_LEVEL ausgeführt werden. Normalerweise wird diese Routine von der Dispatch-Routine eines Gerätetreibers unter IRQL = PASSIVE_LEVEL aufgerufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 |
Zielplattform | Universell |
Header | ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (siehe Abschnitt Hinweise) |