Funzione IoSetShareAccess (wdm.h)
La routine IoSetShareAccess imposta i diritti di accesso per la condivisione dell'oggetto file specificato.
Sintassi
void IoSetShareAccess(
[in] ACCESS_MASK DesiredAccess,
[in] ULONG DesiredShareAccess,
[in, out] PFILE_OBJECT FileObject,
[out] PSHARE_ACCESS ShareAccess
);
Parametri
[in] DesiredAccess
Specifica un valore ACCESS_MASK che rappresenta il tipo di accesso richiesto per FileObject. Per un elenco completo dei flag DesiredAccess definiti dal sistema, vedere IoCreateFile.
[in] DesiredShareAccess
Specifica il tipo di accesso alla condivisione da impostare per l'oggetto file. Questo valore può essere zero o qualsiasi combinazione di quanto segue:
FILE_SHARE_READ
FILE_SHARE_WRITE
FILE_SHARE_DELETE
[in, out] FileObject
Puntatore all'oggetto file di cui è in corso l'impostazione o la reimpostazione dell'accesso alla condivisione.
[out] ShareAccess
Puntatore alla struttura SHARE_ACCESS associata a FileObject. I driver devono considerare questa struttura come opaca.
Valore restituito
nessuno
Osservazioni
Solo i driver in modalità kernel di livello più alto devono chiamare questa routine. La chiamata deve essere eseguita nel contesto del primo thread che tenta di aprire FileObject.
Questa routine imposta le informazioni di accesso e condivisione quando l'oggetto FileObject viene aperto per la prima volta. Restituisce un puntatore alla struttura dei dati di accesso condiviso comune associata a FileObject. I chiamanti devono salvare questo puntatore per usarlo in un secondo momento durante l'aggiornamento dell'accesso o la chiusura del file.
In genere, è molto probabile che i driver del file system (FSD) chiamino questa routine. Tuttavia, altri driver di livello più alto possono chiamare IoSetShareAccess per controllare il tipo di accesso consentito a un oggetto dispositivo creato dal driver associato al fileObject specificato.
IoSetShareAccess non è un'operazione atomica. Pertanto, i driver che chiamano questa routine devono proteggere l'oggetto file condiviso passato a IoSetShareAccess tramite un tipo di blocco, ad esempio un mutex o un blocco di risorse, per evitare il danneggiamento dei conteggi di accesso condiviso.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm) |