Rotina MRxLowIOSubmit[LOWIO_OP_IOCTL]
A rotina MRxLowIOSubmit[LOWIO_OP_IOCTL] é chamada pelo RDBSS para emitir uma solicitação de controle do sistema de E/S para o minidiretório de rede.
Sintaxe
PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_IOCTL];
NTSTATUS MRxLowIOSubmit[LOWIO_OP_IOCTL](
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Parâmetros
RxContext [in, out]
Um ponteiro para a estrutura RX_CONTEXT. Esse parâmetro contém o IRP que está solicitando a operação.
Retornar valor
MRxLowIOSubmit[LOWIO_OP_IOCTL] retorna STATUS_SUCCESS com êxito ou um valor NTSTATUS apropriado, como um dos seguintes:
Código de retorno | Descrição |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Não havia recursos suficientes para concluir a solicitação. |
STATUS_INVALID_DEVICE_REQUEST | Uma solicitação de dispositivo inválida foi especificada. |
STATUS_INVALID_PARAMETER | Um parâmetro inválido foi especificado em RxContext. |
STATUS_NOT_IMPLEMENTED | Essa rotina não é implementada. |
STATUS_NOT_SUPPORTED | O IOCTL especificado não é compatível com o minidiretório de rede. |
Comentários
O RDBSS chama MRxLowIOSubmit[LOWIO_OP_IOCTL] em resposta ao recebimento de uma IRP_MJ_DEVICE_CONTROL ou solicitações de IRP_MJ_INTERNAL_DEVICE_CONTROL .
Antes de chamar MRxLowIOSubmit[LOWIO_OP_IOCTL], o RDBSS modifica os seguintes membros na estrutura RX_CONTEXT apontada pelo parâmetro RxContext :
O membro LowIoContext.Operation é definido como LOWIO_OP_IOCTL.
O membro LowIoContext.ResourceThreadId é definido como o thread do processo que iniciou a operação no RDBSS.
O membro LowIoContext.ParamsFor.IoCtl.IoControlCode é definido como o código de controle IOCTL.
O membro LowIoContext.ParamsFor.IoCtl.pInputBuffer é definido como o buffer de entrada.
O membro LowIoContext.ParamsFor.IoCtl.InputBufferLength é definido como o comprimento do buffer de entrada.
O membro LowIoContext.ParamsFor.IoCtl.pOutputBuffer é definido como o buffer de saída.
O membro LowIoContext.ParamsFor.IoCtl.OutputBufferLength é definido como o comprimento do buffer de saída.
Enquanto a rotina MRxLowIOSubmit[LOWIO_OP_IOCTL] está sendo processada, o membro LowIoContext.ResourceThreadId do RX_CONTEXT é garantido para indicar o thread do processo que iniciou a operação no RDBSS. O membro LowIoContext.ResourceThreadId do RX_CONTEXT pode ser usado para liberar o recurso de entrada em nome de outro thread. Quando uma rotina assíncrona é concluída, o recurso de entrada adquirido do thread inicial pode ser liberado.
Requisitos
Plataforma de destino |
Área de Trabalho |
parâmetro |
Mrx.h (inclua Mrx.h) |
Confira também
MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]
MRxLowIOSubmit[LOWIO_OP_FSCTL]
MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]
MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]
MRxLowIOSubmit[LOWIO_OP_UNLOCK]