Condividi tramite


Funzione WdmlibIoValidateDeviceIoControlAccess (wdmsec.h)

La funzione WdmlibIoValidateDeviceIoControlAccess verifica che il mittente di un IRP_MJ_DEVICE_CONTROL o IRP_MJ_FILE_SYSTEM_CONTROL IRP abbia l'accesso specificato all'oggetto dispositivo.

Sintassi

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

Parametri

[in] Irp

Specifica il IRP in cui eseguire il controllo di accesso.

[in] RequiredAccess

Specifica il tipo di accesso all'oggetto dispositivo che il mittente della richiesta deve avere. Il chiamante può specificare uno o più flag seguenti.

Valore Significato
FILE_READ_ACCESS
Il mittente della richiesta deve avere accesso in lettura all'oggetto dispositivo
FILE_WRITE_ACCESS
Il mittente della richiesta deve avere accesso in scrittura all'oggetto dispositivo.

Valore restituito

WdmlibIoValidateDeviceIoControlAccess restituisce un valore NTSTATUS. I possibili valori restituiti includono:

Codice restituito Descrizione
STATUS_SUCCESS
Il mittente della richiesta ha l'accesso necessario all'oggetto dispositivo.
STATUS_ACCESS_DENIED
Il mittente della richiesta non ha l'accesso necessario all'oggetto dispositivo.
STATUS_INVALID_PARAMETER
I parametri specificati non sono validi. Ad esempio, se la routine viene passata a un IRP che non è un IRP_MJ_DEVICE_CONTROL o IRP_MJ_FILE_SYSTEM_CONTROL IRP, restituisce STATUS_INVALID_PARAMETER.

Osservazioni

WdmlibIoValidateDeviceIoControlAccess consente ai driver di eseguire controlli di accesso dinamici per IOCTLs. Utilizzare questa routine per richiedere un accesso più restrittivo di quello specificato nella definizione di IOCTL. Se la routine restituisce STATUS_ACCESS_DENIED, il driver può completare la richiesta con il valore di stato STATUS_ACCESS_DENIED.

Ad esempio, se un IOCTL viene definito con un valore RequiredAccess di FILE_ANY_ACCESS, per impostazione predefinita qualsiasi mittente della richiesta con accesso SYNCHRONIZE all'oggetto dispositivo può inviare L'IOCTL. Usare WdmlibIoValidateDeviceIoControlAccess per richiedere una sicurezza più rigorosa in fase di esecuzione. Per altre informazioni sul valore RequiredAccess di un IOCTL, vedere Definizione di codici di controllo I/O.

I controlli di accesso vengono eseguiti solo se il membro RequestorMode della struttura IRP è UserMode. Se RequestorMode è KernelMode, la routine restituisce automaticamente STATUS_SUCCESS.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Server 2003 e versioni successive di Windows. I driver che devono funzionare anche per Windows 2000 e Windows XP possono invece collegarsi a Wdmsec.lib per usare questa routine. (La libreria Wdmsec.lib fornita prima con le edizioni Windows XP Service Pack 1 [SP1] e Windows Server 2003 del Driver Development Kit [DDK] e ora viene fornito con Windows Driver Kit [WDK].)
piattaforma di destinazione Universale
intestazione wdmsec.h (include Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL Qualsiasi livello

Vedere anche

IRP