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 di condivisione da impostare per l'oggetto file. Questo valore può essere zero o qualsiasi combinazione dei seguenti elementi:

FILE_SHARE_READ

FILE_SHARE_WRITE

FILE_SHARE_DELETE

[in, out] FileObject

Puntatore all'oggetto file il cui accesso alla condivisione viene impostato o reimpostato.

[out] ShareAccess

Puntatore alla struttura SHARE_ACCESS associata a FileObject. I driver devono trattare 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 verificarsi nel contesto del primo thread che tenta di aprire FileObject.

Questa routine imposta l'accesso e condivide le informazioni di accesso quando il fileObject viene aperto per la prima volta. Restituisce un puntatore alla struttura di dati di accesso condiviso comune associata a FileObject. I chiamanti devono salvare questo puntatore per un uso successivo durante l'aggiornamento dell'accesso o la chiusura del file.

In genere, i driver del file system (FSD) sono più probabile chiamare questa routine. Tuttavia, altri driver di livello superiore possono chiamare IoSetShareAccess per controllare il tipo di accesso consentito a un oggetto dispositivo creato dal driver associato all'oggetto 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 impedire il danneggiamento dei conteggi di accesso condiviso.

Requisiti

   
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 HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm)

Vedi anche

ACCESS_MASK

IoCheckShareAccess

IoCreateFile

IoCreateFileEx

IoGetFileObjectGenericMapping

IoGetRelatedDeviceObject

IoRemoveShareAccess

IoUpdateShareAccess