Share via


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 device.

Sintassi

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

Parametri

[in] Irp

Specifica l'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 valori restituiti possibili 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 non IRP_MJ_DEVICE_CONTROL oIRP_MJ_FILE_SYSTEM_CONTROL IRP, restituisce STATUS_INVALID_PARAMETER.

Commenti

WdmlibIoValidateDeviceIoControlAccess consente ai driver di eseguire controlli di accesso dinamici per IOCTLs. Usare questa routine per richiedere un accesso più restrittivo rispetto a 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 è definito con un valore RequiredAccess di FILE_ANY_ACCESS, per impostazione predefinita qualsiasi mittente di richiesta con accesso SYNC all'oggetto dispositivo può inviare IOCTL. Usare WdmlibIoValidateDeviceIoControlAccess per richiedere una sicurezza più rigorosa in fase di esecuzione. Per altre informazioni sul valore RequiredAccess di un IOCTL, vedere Definizione dei 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.

Requisiti

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 è stata fornita prima con Windows XP Service Pack 1 [SP1] e le edizioni windows Server 2003 del Driver Development Kit [DDK] e ora vengono fornite 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

Vedi anche

IRP