MRxLowIOSubmit[LOWIO_OP_IOCTL] Routine
Die MRxLowIOSubmit[LOWIO_OP_IOCTL] -Routine wird von RDBSS aufgerufen, um eine E/A-Systemsteuerungsanforderung an den Mini-Umleitungsnetzwerk ausstellen zu können.
Syntax
PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_IOCTL];
NTSTATUS MRxLowIOSubmit[LOWIO_OP_IOCTL](
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Parameter
RxContext [in, out]
Ein Zeiger auf die RX_CONTEXT-Struktur. Dieser Parameter enthält das IRP, das den Vorgang anfordert.
Rückgabewert
MRxLowIOSubmit[LOWIO_OP_IOCTL] gibt STATUS_SUCCESS nach Erfolg oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Es gab nicht genügend Ressourcen, um die Anforderung abzuschließen. |
STATUS_INVALID_DEVICE_REQUEST | Es wurde eine ungültige Geräteanforderung angegeben. |
STATUS_INVALID_PARAMETER | In RxContext wurde ein ungültiger Parameter angegeben. |
STATUS_NOT_IMPLEMENTED | Diese Routine ist nicht implementiert. |
STATUS_NOT_SUPPORTED | Die angegebene IOCTL wird vom Mini-Umleitungsnetzwerk nicht unterstützt. |
Hinweise
RDBSS ruft MRxLowIOSubmit[LOWIO_OP_IOCTL] als Reaktion auf den Empfang einer IRP_MJ_DEVICE_CONTROL oder IRP_MJ_INTERNAL_DEVICE_CONTROL-Anforderungen auf.
Vor dem Aufrufen von MRxLowIOSubmit[LOWIO_OP_IOCTL] ändert RDBSS die folgenden Member in der RX_CONTEXT-Struktur, auf die der RxContext-Parameter verweist:
Der LowIoContext.Operation-Member ist auf LOWIO_OP_IOCTL festgelegt.
Der LowIoContext.ResourceThreadId-Member wird auf den Thread des Prozesses festgelegt, der den Vorgang in RDBSS initiiert hat.
Der LowIoContext.ParamsFor.IoCtl.IoControlCode-Member ist auf den IOCTL-Steuerelementcode festgelegt.
Der LowIoContext.ParamsFor.IoCtl.pInputBuffer-Member ist auf den Eingabepuffer festgelegt.
Der LowIoContext.ParamsFor.IoCtl.InputBufferLength-Member wird auf die Eingabepufferlänge festgelegt.
Der LowIoContext.ParamsFor.IoCtl.pOutputBuffer-Member ist auf den Ausgabepuffer festgelegt.
Der LowIoContext.ParamsFor.IoCtl.OutputBufferLength-Member wird auf die Ausgabepufferlänge festgelegt.
Während die MRxLowIOSubmit[LOWIO_OP_IOCTL] -Routine verarbeitet wird, gibt der LowIoContext.ResourceThreadId-Member von RX_CONTEXT garantiert den Thread des Prozesses an, der den Vorgang in RDBSS initiiert hat. Der LowIoContext.ResourceThreadId-Member von RX_CONTEXT kann verwendet werden, um die Eingaberessource im Namen eines anderen Threads freizugeben. Wenn eine asynchrone Routine abgeschlossen ist, kann die Eingaberessource freigegeben werden, die aus dem anfänglichen Thread abgerufen wurde.
Anforderungen
Zielplattform |
Desktop |
Header |
Mrx.h (einschließlich Mrx.h) |
Weitere Informationen
MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]
MRxLowIOSubmit[LOWIO_OP_FSCTL]
MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]
MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]
MRxLowIOSubmit[LOWIO_OP_UNLOCK]