Função WdmlibIoValidateDeviceIoControlAccess (wdmsec.h)

A função WdmlibIoValidateDeviceIoControlAccess verifica se o remetente de um IRP_MJ_DEVICE_CONTROL ou IRP_MJ_FILE_SYSTEM_CONTROL IRP tem o acesso especificado ao objeto do dispositivo.

Sintaxe

NTSTATUS WdmlibIoValidateDeviceIoControlAccess(
  [in] PIRP  Irp,
  [in] ULONG RequiredAccess
);

Parâmetros

[in] Irp

Especifica o IRP no qual executar o marcar de acesso.

[in] RequiredAccess

Especifica o tipo de acesso ao objeto de dispositivo que o remetente da solicitação deve ter. O chamador pode especificar um ou mais dos sinalizadores a seguir.

Valor Significado
FILE_READ_ACCESS
O remetente da solicitação deve ter acesso de leitura ao objeto do dispositivo
FILE_WRITE_ACCESS
O remetente da solicitação deve ter acesso de gravação ao objeto do dispositivo.

Retornar valor

WdmlibIoValidateDeviceIoControlAccess retorna um valor NTSTATUS. Os possíveis valores retornados incluem:

Código de retorno Descrição
STATUS_SUCCESS
O remetente da solicitação tem o acesso necessário ao objeto do dispositivo.
STATUS_ACCESS_DENIED
O remetente da solicitação não tem o acesso necessário ao objeto do dispositivo.
STATUS_INVALID_PARAMETER
Os parâmetros especificados são inválidos. Por exemplo, se a rotina for passada para um IRP que não é um IRP IRP_MJ_DEVICE_CONTROL ou IRP_MJ_FILE_SYSTEM_CONTROL , ele retornará STATUS_INVALID_PARAMETER.

Comentários

WdmlibIoValidateDeviceIoControlAccess permite que os drivers executem verificações de acesso dinâmico para IOCTLs. Use essa rotina para exigir acesso mais restritivo do que o especificado na definição do IOCTL. Se a rotina retornar STATUS_ACCESS_DENIED, o driver poderá concluir a solicitação com o valor STATUS_ACCESS_DENIED status.

Por exemplo, se um IOCTL for definido com um valor RequiredAccess de FILE_ANY_ACCESS, por padrão, qualquer remetente de solicitação com acesso SYNCHRONIZE ao objeto do dispositivo poderá enviar o IOCTL. Use WdmlibIoValidateDeviceIoControlAccess para exigir segurança mais rigorosa em tempo de execução. Para obter mais informações sobre o valor RequiredAccess de um IOCTL, consulte Definindo códigos de controle de E/S.

As verificações de acesso só serão executadas se o membro RequestorMode da estrutura IRP for UserMode. Se RequestorMode for KernelMode, a rotina retornará automaticamente STATUS_SUCCESS.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Server 2003 e versões posteriores do Windows. Os drivers que também devem funcionar para o Windows 2000 e o Windows XP podem, em vez disso, vincular ao Wdmsec.lib para usar essa rotina. (A biblioteca Wdmsec.lib foi enviada pela primeira vez com as edições Windows XP Service Pack 1 [SP1] e Windows Server 2003 do Kit de Desenvolvimento de Driver [DDK] e agora é fornecida com o Kit de Driver do Windows [WDK].)
Plataforma de Destino Universal
Cabeçalho wdmsec.h (incluem Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualquer nível

Confira também

IRP