code de contrôle DA_GET_NFS_ATTRIBUTES
Le code de contrôle DA_GET_NFS_ATTRIBUTES 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 [in]
-
Handle pour un fichier sur le partage NFS. Pour obtenir ce handle, appelez la fonction CreateFile .
-
dwIoControlCode [in]
-
Code de contrôle pour l’opération. Utilisez DA_GET_NFS_ATTRIBUTES pour cette opération.
-
lpInBuffer
-
Non utilisé avec cette opération ; défini sur NULL.
-
nInBufferSize [in]
-
Non utilisé avec cette opération ; défini sur zéro.
-
lpOutBuffer [out]
-
Pointeur vers la mémoire tampon de sortie, qui contient une structure NFS_FILE_ATTRIBUTES . Pour plus d'informations, consultez la section Notes.
-
nOutBufferSize [in]
-
Taille de la mémoire tampon de sortie en octets.
-
lpBytesReturned [out]
-
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 ERROR_INSUFFICIENT_BUFFER et lpBytesReturned est égal à zéro.
Si lpOverlapped a la valeur NULL, lpBytesReturned ne peut pas être 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 n’a aucun sens.
Si lpOverlapped n’a pas la valeur NULL, lpBytesReturned peut être NULL. Si ce paramètre n’est pas NULL et que l’opération retourne des données, lpBytesReturned n’a pas de signification tant que l’opération qui se chevauche 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 d’achèvement des E/S, vous pouvez récupérer le nombre d’octets retournés en appelant GetQueuedCompletionStatus.
-
lpOverlapped [in]
-
Pointeur vers une structure CHEVAUCHEMENT .
Si hDevice a été ouvert sans spécifier FILE_FLAG_OVERLAPPED, lpOverlapped est ignoré.
Si hDevice a été ouvert avec l’indicateur FILE_FLAG_OVERLAPPED , l’opération est effectuée en tant qu’opération (asynchrone) superposée. Dans ce cas, lpOverlapped doit pointer vers une structure OVERLAPPED valide qui contient un handle vers un objet d’événement. Sinon, la fonction échoue de manière imprévisible.
Pour les opérations qui se chevauchent, DeviceIoControl retourne immédiatement et l’objet d’événement est signalé une fois l’opération terminée. Sinon, la fonction ne retourne pas tant que l’opération n’est pas terminée ou qu’une erreur se produit.
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 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 blocs, de caractères spéciaux et de fichiers FIFO.
-
SpecData2
-
Valeur opaque utilisée pour les types de fichiers spéciaux tels que les fichiers spéciaux de blocs, de caractères spéciaux et de fichiers FIFO.
-
Secondes
-
Valeur 64 bits représentant les secondes 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 NFS_TYPE_REG Un fichier normal. NFS_TYPE_DIR Répertoire. NFS_TYPE_BLK Fichier spécial bloc. NFS_TYPE_CHR Fichier spécial caractère. NFS_TYPE_LNK Un lien symbolique. NFS_TYPE_SOCK Un socket Windows. NFS_TYPE_FIFO Un fichier FIFO. -
Mode
-
Mode fichier.
-
NLink
-
Nombre de liens vers le partage.
-
Uid
-
Identificateur d’utilisateur UNIX (UID).
-
Gid
-
Identificateur de groupe UNIX (GID).
-
Taille
-
Taille du fichier, en octets.
-
Utilisé
-
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.
-
FileId
-
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 NFS_FILE_ATTRIBUTES .
Notes
Pour obtenir des descriptions plus détaillées des membres de cette structure, consultez la structure fattr3 dans la spécification du protocole NFS Version 3 (telle que définie dans RFC 1813).
-
Version
-
Spécifie si la connexion sur laquelle le handle du partage NFS a été créé est sur le protocole NFS version 2 ou NFS version 3.
Valeur Description 2 NFS version 2 3 NFS version 3
Spécifications
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 |
Voir aussi