_Code de _ contrôle des attributs NFS d’extraction de da _
Le code de contrôle des _ _ _ attributs da obtenir NFS interroge des informations supplémentaires sur un partage NFS.
Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.
BOOL
WINAPI
DeviceIoControl( (HANDLE) hDevice, // handle to device
(DWORD) DA_GET_NFS_ATTRIBUTES, // dwIoControlCode
NULL, // lpInBuffer
0, // nInBufferSize
(LPDWORD) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure
Paramètres
-
hDevice [ dans]
-
Handle d’un fichier sur le partage NFS. Pour obtenir ce descripteur, appelez la fonction CreateFile .
-
dwIoControlCode [ dans]
-
Code de contrôle de l’opération. Utilisez da _ obtenir _ des _ attributs NFS pour cette opération.
-
lpInBuffer
-
Non utilisé avec cette opération ; Affectez la valeur null.
-
nInBufferSize [ dans]
-
Non utilisé avec cette opération ; défini à zéro.
-
lpOutBuffer [ à]
-
Pointeur vers la mémoire tampon de sortie, qui contient une structure d' _ _ attributs de fichier NFS . Pour plus d'informations, consultez la section Notes.
-
nOutBufferSize [ dans]
-
Taille de la mémoire tampon de sortie en octets.
-
lpBytesReturned [ à]
-
Pointeur vers une variable qui reçoit la taille des données stockées dans la mémoire tampon de sortie, en octets.
Si la mémoire tampon de sortie est trop petite, l’appel échoue, GetLastError retourne l' erreur _ _ mémoire tampon insuffisante et lpBytesReturned est égal à zéro.
Si lpOverlapped a la valeur null, lpBytesReturned ne peut pas avoir la valeur null. Même lorsqu’une opération ne retourne aucune donnée de sortie et que lpOutBuffer a la valeur null, DeviceIoControl utilise lpBytesReturned. Après une telle opération, la valeur de lpBytesReturned est sans signification.
Si lpOverlapped n’a pas la valeur null, LpBytesReturned peut avoir la valeur null. Si ce paramètre n’est pas null et que l’opération retourne des données, lpBytesReturned n’a pas de sens tant que l’opération avec chevauchement n’est pas terminée. Pour récupérer le nombre d’octets retournés, appelez GetOverlappedResult. Si le paramètre hDevice est associé à un port de terminaison d’e/s, vous pouvez récupérer le nombre d’octets renvoyés en appelant GetQueuedCompletionStatus.
-
lpOverlapped [ dans]
-
Pointeur vers une structure OVERLAPPED .
Si hDevice a été ouvert sans spécifier d' indicateur de fichier avec _ _ chevauchement, lpOverlapped est ignoré.
Si hDevice a été ouvert avec l’indicateur de fichier avec l' indicateur de _ _ chevauchement , l’opération est exécutée en tant qu’opération Overlapped (asynchrone). Dans ce cas, lpOverlapped doit pointer vers une structure OVERLAPPED valide qui contient un handle vers un objet d’événement. Dans le cas contraire, la fonction échoue de façon imprévisible.
Pour les opérations avec chevauchement, DeviceIoControl retourne immédiatement, et l’objet d’événement est signalé lorsque l’opération est terminée. Sinon, la fonction ne retourne pas jusqu’à ce que l’opération soit terminée ou qu’une erreur se produise.
Valeur retournée
Si l’opération se termine correctement, DeviceIoControl retourne une valeur différente de zéro.
Si l’opération échoue ou est en attente, DeviceIoControl retourne la valeur zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Ce code de contrôle n’a aucun fichier d’en-tête associé. Vous devez définir le code de contrôle et les structures de données comme suit.
#define DEVICE_DA_RDR 0x80000
#define DA_GET_NFS_ATTRIBUTES CTL_CODE(DEVICE_DA_RDR, 0x804, METHOD_BUFFERED, FILE_ANY_ACCESS)
typedef struct _NFS_SPEC_DATA {
ULONG SpecData1;
ULONG SpecData2;
} NFS_SPEC_DATA, *PNFS_SPEC_DATA;
typedef struct _NFS_TIME {
ULONG Seconds;
ULONG nSeconds;
} NFS_TIME, *PNFS_TIME;
#define NFS_TYPE_REG 1
#define NFS_TYPE_DIR 2
#define NFS_TYPE_BLK 3
#define NFS_TYPE_CHR 4
#define NFS_TYPE_LNK 5
#define NFS_TYPE_SOCK 6
#define NFS_TYPE_FIFO 7
typedef struct _NFS_FILE_ATTRIBUTES {
ULONG FileType;
ULONG Mode;
ULONG NLink;
ULONG Uid;
ULONG Gid;
ULONGLONG Size;
ULONGLONG Used;
NFS_SPEC_DATA Rdev;
ULONGLONG Fsid;
ULONGLONG FileId;
NFS_TIME AccessTime;
NFS_TIME ModifyTime;
NFS_TIME ChangeTime;
} NFS_FILE_ATTRIBUTES, *PNFS_FILE_ATTRIBUTES;
typedef struct _DA_FILE_ATTRIBUTES {
NFS_FILE_ATTRIBUTES FileAttributes;
ULONG Version;
} DA_FILE_ATTRIBUTES, *PDA_FILE_ATTRIBUTES;
Les membres de la structure peuvent être décrits comme suit.
-
SpecData1
-
Valeur opaque utilisée pour les types de fichiers spéciaux, tels que les fichiers spéciaux de bloc, spéciaux et FIFO.
-
SpecData2
-
Valeur opaque utilisée pour les types de fichiers spéciaux, tels que les fichiers spéciaux de bloc, spéciaux et FIFO.
-
Durée
-
Valeur 64 bits représentant les secondes écoulées depuis le 1er janvier 1970 (UTC).
-
nSeconds
-
Nombre de nanosecondes à ajouter au membre seconds .
-
FileType
-
Type de fichier NFS du partage.
Type de fichier NFS Description _reg de type NFS _ Fichier normal. Rép. de _ type NFS _ Un répertoire. _BLK de type NFS _ Fichier spécial de bloc. TYPE de NFS _ _ Chr Fichier spécial de caractères. _type NFS _ lnk Lien symbolique. _chaussette de type NFS _ socket Windows. _type NFS _ FIFO Fichier FIFO. -
Mode
-
Mode de fichier.
-
NLink
-
Nombre de liens vers le partage.
-
Codé
-
identificateur d’utilisateur (UID) UNIX.
-
ID
-
identificateur du groupe de UNIX (GID).
-
Corps
-
Taille du fichier, en octets.
-
Servir
-
Taille de fichier utilisée, en octets. Il s’agit de la même taille de fichier.
-
Rdev
-
Identificateur de l’appareil.
-
Fsid
-
Identificateur du système de fichiers.
-
Combinaison
-
Identificateur de fichier.
-
AccessTime
-
Heure du dernier accès.
-
ModifyTime
-
Heure de la dernière modification.
-
ChangeTime
-
Heure de la dernière modification.
-
FileAttributes
-
Structure d' _ _ attributs de fichier NFS .
Notes
Pour obtenir une description plus détaillée des membres de cette structure, consultez la structure fattr3 dans la spécification du protocole NFS version 3 (telle que définie dans la norme RFC 1813).
-
Version
-
Spécifie si la connexion sur laquelle le descripteur du partage NFS a été créé se trouve sur le protocole NFS version 2 ou NFS version 3.
Valeur Description 2 NFS version 2 1,3 NFS version 3
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Aucun pris en charge |
| Serveur minimal pris en charge |
Windows Server 2008 |
| Fin de la prise en charge des clients |
Aucun pris en charge |
| Fin de la prise en charge des serveurs |
Windows Server 2008 R2 |