_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

Voir aussi

DeviceIoControl