Compartir a través de


DA_GET_NFS_ATTRIBUTES código de control

El código de control DA_GET_NFS_ATTRIBUTES consulta información adicional sobre un recurso compartido NFS.

Para realizar esta operación, llame a la función DeviceIoControl con los parámetros siguientes.

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

Parámetros

hDevice [in]

Identificador de un archivo en el recurso compartido NFS. Para obtener este identificador, llame a la función CreateFile .

dwIoControlCode [in]

Código de control de la operación. Use DA_GET_NFS_ATTRIBUTES para esta operación.

lpInBuffer

No se usa con esta operación; se establece en NULL.

nInBufferSize [in]

No se usa con esta operación; se establece en cero.

lpOutBuffer [out]

Puntero al búfer de salida, que contiene una estructura de NFS_FILE_ATTRIBUTES . Para obtener más información, vea la sección Comentarios.

nOutBufferSize [in]

Tamaño del búfer de salida, en bytes.

lpBytesReturned [out]

Puntero a una variable que recibe el tamaño de los datos almacenados en el búfer de salida, en bytes.

Si el búfer de salida es demasiado pequeño, se produce un error en la llamada, GetLastError devuelve ERROR_INSUFFICIENT_BUFFER y lpBytesReturned es cero.

Si lpOverlapped es NULL, lpBytesReturned no puede ser NULL. Incluso cuando una operación no devuelve datos de salida y lpOutBuffer es NULL, DeviceIoControl usa lpBytesReturned. Después de esta operación, el valor de lpBytesReturned no tiene sentido.

Si lpOverlapped no es NULL, lpBytesReturned puede ser NULL. Si este parámetro no es NULL y la operación devuelve datos, lpBytesReturned no tiene sentido hasta que se haya completado la operación superpuesta. Para recuperar el número de bytes devueltos, llame a GetOverlappedResult. Si el parámetro hDevice está asociado a un puerto de finalización de E/S, puede recuperar el número de bytes devueltos llamando a GetQueuedCompletionStatus.

lpOverlapped [in]

Puntero a una estructura SUPERPUESTA .

Si hDevice se abrió sin especificar FILE_FLAG_OVERLAPPED, se omite lpOverlapped .

Si hDevice se abrió con la marca FILE_FLAG_OVERLAPPED , la operación se realiza como una operación superpuesta (asincrónica). En este caso, lpOverlapped debe apuntar a una estructura SUPERPUESTA válida que contiene un identificador para un objeto de evento. De lo contrario, se produce un error en la función de maneras impredecibles.

En el caso de las operaciones superpuestas, DeviceIoControl devuelve inmediatamente y el objeto de evento se señala cuando se ha completado la operación. De lo contrario, la función no devuelve hasta que se haya completado la operación o se produzca un error.

Valor devuelto

Si la operación se completa correctamente, DeviceIoControl devuelve un valor distinto de cero.

Si se produce un error en la operación o está pendiente, DeviceIoControl devuelve cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Este código de control no tiene ningún archivo de encabezado asociado. Debe definir el código de control y las estructuras de datos de la siguiente manera.

#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;

Los miembros de la estructura se pueden describir de la siguiente manera.

SpecData1

Valor opaco que se usa para tipos de archivo especiales, como archivos FIFO, especiales de caracteres y bloques especiales.

SpecData2

Valor opaco que se usa para tipos de archivo especiales, como archivos FIFO, especiales de caracteres y bloques especiales.

Segundos

Valor de 64 bits que representa los segundos desde el 1 de enero de 1970 (UTC).

nSeconds

Número de nanosegundos que se van a agregar al miembro Seconds .

Eltipo

Tipo de archivo NFS del recurso compartido.

Tipo de archivo NFS Descripción
NFS_TYPE_REG
Un archivo normal.
NFS_TYPE_DIR
Un directorio.
NFS_TYPE_BLK
Un archivo especial de bloque.
NFS_TYPE_CHR
Un archivo especial de caracteres.
NFS_TYPE_LNK
Vínculo simbólico.
NFS_TYPE_SOCK
Un socket de Windows.
NFS_TYPE_FIFO
Un archivo FIFO.

 

Modo

Modo de archivo.

NLink

Número de vínculos al recurso compartido.

Uid

Identificador de usuario de UNIX (UID).

Gid

Identificador del grupo UNIX (GID).

Tamaño

Tamaño del archivo, en bytes.

Utilizado

Tamaño del archivo usado, en bytes. Este es el mismo que el tamaño del archivo.

Rdev

Identificador del dispositivo.

Fsid

Identificador del sistema de archivos.

FileId

Identificador de archivo.

AccessTime

Hora de último acceso.

ModifyTime

Hora de la última modificación.

ChangeTime

Hora del último cambio.

FileAttributes

Estructura de NFS_FILE_ATTRIBUTES .

Nota:

Para obtener descripciones más detalladas de los miembros de esta estructura, consulte la estructura fatr3 en la especificación del protocolo NFS versión 3 (como se define en RFC 1813).

 

Versión

Especifica si la conexión en la que se creó el identificador del recurso compartido NFS se realiza a través del protocolo NFS Versión 2 o NFS versión 3.

Valor Descripción
2
NFS versión 2
3
NFS versión 3

 

Requisitos

Requisito Value
Cliente mínimo compatible
No se admite ninguno
Servidor mínimo compatible
Windows Server 2008
Fin de compatibilidad de cliente
No se admite ninguno
Fin de compatibilidad de servidor
Windows Server 2008 R2

Consulte también

DeviceIoControl