Funzione IoCheckLinkShareAccess (wdm.h)
La routine IoCheckLinkShareAccess viene chiamata dai driver del file system (FSD) o da altri driver di livello più alto per verificare se è consentito collegare l'accesso condiviso a un oggetto file.
Sintassi
NTSTATUS IoCheckLinkShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out, optional] PFILE_OBJECT FileObject,
[in, out, optional] PSHARE_ACCESS ShareAccess,
[in, out, optional] PLINK_SHARE_ACCESS LinkShareAccess,
[in] ULONG IoShareAccessFlags
);
Parametri
[in] DesiredAccess
Specifica un valore ACCESS_MASK che indica il tipo di accesso desiderato all'oggetto file specificato.
[in] DesiredShareAccess
Specifica il tipo desiderato di accesso condiviso all'oggetto file per la richiesta aperta corrente. Il valore di questo parametro è in genere lo stesso del parametro ShareAccess passato al file system o al driver di livello più alto dal gestore di I/O quando è stata effettuata la richiesta aperta. Questo valore può essere zero o qualsiasi combinazione di quanto segue:
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out, optional] FileObject
Puntatore all'oggetto file per il quale controllare l'accesso per la richiesta aperta corrente.
[in, out, optional] ShareAccess
Puntatore alla struttura dei dati di accesso condiviso comune associata a FileObject. I driver devono considerare questa struttura come opaca.
[in, out, optional] LinkShareAccess
Puntatore alla struttura dei dati di accesso condiviso di collegamento comune (LINK_SHARE_ACCESS) associata a FileObject. I driver devono considerare questa struttura come opaca.
[in] IoShareAccessFlags
Maschera di bit di questi flag:
IO_SHARE_ACCESS_NO_WRITE_PERMISSION (0x80000000) specifica che l'utente non dispone dell'autorizzazione di scrittura per il file. Questo flag viene usato per impedire l'apertura di un file per l'accesso in lettura esclusivo quando l'utente non dispone delle autorizzazioni appropriate.
IO_SHARE_ACCESS_NON_PRIMARY_STREAM (0x00000080) specifica che il flusso non è né il flusso di dati primario né un flusso di directory.
IO_CHECK_SHARE_ACCESS_UPDATE_SHARE_ACCESS (0x00000001) indica se la struttura SHARE_ACCESS viene aggiornata.
IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT (0x00000002) indica di non aggiornare FILE_OBJECT struttura.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ (0x00000004) indica di non controllare l'accesso in lettura alla condivisione.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE (0x00000008) indica di non controllare l'accesso alla condivisione di scrittura.
IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE (0x00000010) indica di non controllare l'accesso alla condivisione di eliminazione.
IO_CHECK_SHARE_ACCESS_FORCE_CHECK (0x00000020) indicano di forzare il controllo dell'accesso alla condivisione anche se la richiesta non è accesso in lettura/scrittura/eliminazione.
IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB (0x00000040) indica di forzare il controllo dell'accesso alla condivisione di eliminazione tramite ShareAccess indipendentemente dal fatto che LinkShareAccess sia presente o meno.
Valore restituito
La routine IoCheckLinkShareAccess restituisce STATUS_SUCCESS se l'accesso del richiedente all'oggetto file è compatibile con il modo in cui è attualmente aperto. Se la richiesta viene negata a causa di una violazione di condivisione, viene restituita STATUS_SHARING_VIOLATION.
Commenti
Il parametro ShareAccess deve essere bloccato su altri accessi da altri thread durante l'esecuzione di questa routine. In caso contrario, i conteggi possono essere sincronizzati.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10, versione 1709 |
Server minimo supportato | Windows Server 2016 |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h |
Libreria | Ntoskrnl.lib |