Routine MRxLowIOSubmit[LOWIO_OP_IOCTL]
La routine MRxLowIOSubmit[LOWIO_OP_IOCTL] viene chiamata da RDBSS per inviare una richiesta di controllo di sistema di I/O al mini-reindirizzamento di rete.
Sintassi
PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_IOCTL];
NTSTATUS MRxLowIOSubmit[LOWIO_OP_IOCTL](
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Parametri
RxContext [in, out]
Puntatore alla struttura RX_CONTEXT. Questo parametro contiene l'IRP che richiede l'operazione.
Valore restituito
MRxLowIOSubmit[LOWIO_OP_IOCTL] restituisce STATUS_SUCCESS sull'esito positivo o su un valore NTSTATUS appropriato, ad esempio uno dei seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Per completare la richiesta sono state eseguite risorse insufficienti. |
STATUS_INVALID_DEVICE_REQUEST | È stata specificata una richiesta di dispositivo non valida. |
STATUS_INVALID_PARAMETER | Un parametro non valido è stato specificato in RxContext. |
STATUS_NOT_IMPLEMENTED | Questa routine non viene implementata. |
STATUS_NOT_SUPPORTED | L'IOCTL specificato non è supportato dal mini-reindirizzamento di rete. |
Commenti
RDBSS chiama MRxLowIOSubmit[LOWIO_OP_IOCTL] in risposta alla ricezione di una richiesta di IRP_MJ_DEVICE_CONTROL o di IRP_MJ_INTERNAL_DEVICE_CONTROL .
Prima di chiamare MRxLowIOSubmit[LOWIO_OP_IOCTL], RDBSS modifica i membri seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :
Il membro LowIoContext.Operation è impostato su LOWIO_OP_IOCTL.
Il membro LowIoContext.ResourceThreadId è impostato sul thread del processo che ha avviato l'operazione in RDBSS.
Il membro LowIoContext.ParamsFor.IoCtl.IoControlCode è impostato sul codice di controllo IOCTL.
Il membro LowIoContext.ParamsFor.IoCtl.pInputBuffer è impostato sul buffer di input.
Il membro LowIoContext.ParamsFor.IoCtl.InputBufferLength è impostato sulla lunghezza del buffer di input.
Il membro LowIoContext.ParamsFor.IoCtl.pOutputBuffer è impostato sul buffer di output.
Il membro LowIoContext.ParamsFor.IoCtl.OutputBufferLength è impostato sulla lunghezza del buffer di output.
Mentre la routine MRxLowIOSubmit[LOWIO_OP_IOCTL] viene elaborata, il membro LowIoContext.ResourceThreadId di RX_CONTEXT è garantito indicare il thread del processo che ha avviato l'operazione in RDBSS. Il membro LowIoContext.ResourceThreadId di RX_CONTEXT può essere usato per rilasciare la risorsa di input per conto di un altro thread. Al termine di una routine asincrona, è possibile rilasciare la risorsa di input acquisita dal thread iniziale.
Requisiti
Piattaforma di destinazione |
Desktop |
Intestazione |
Mrx.h (include Mrx.h) |
Vedi anche
MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]
MRxLowIOSubmit[LOWIO_OP_FSCTL]
MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]
MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]
MRxLowIOSubmit[LOWIO_OP_UNLOCK]