Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il codice di controllo DA_GET_NFS_ATTRIBUTES esegue query su informazioni aggiuntive su una condivisione NFS.
Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.
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
Parametri
-
hDevice [in]
-
Handle per un file nella condivisione NFS. Per ottenere questo handle, chiamare la funzione CreateFile .
-
dwIoControlCode [in]
-
Codice di controllo per l'operazione. Usare DA_GET_NFS_ATTRIBUTES per questa operazione.
-
lpInBuffer
-
Non usato con questa operazione; impostare su NULL.
-
nInBufferSize [in]
-
Non usato con questa operazione; impostato su zero.
-
lpOutBuffer [out]
-
Puntatore al buffer di output, che contiene una struttura NFS_FILE_ATTRIBUTES . Per altre informazioni, vedere la sezione Osservazioni.
-
nOutBufferSize [in]
-
Dimensioni in byte del buffer di output.
-
lpBytesReturned [out]
-
Puntatore a una variabile che riceve le dimensioni dei dati archiviati nel buffer di output, in byte.
Se il buffer di output è troppo piccolo, la chiamata ha esito negativo, GetLastError restituisce ERROR_INSUFFICIENT_BUFFER e lpBytesReturned è zero.
Se lpOverlapped è NULL, lpBytesReturned non può essere NULL. Anche quando un'operazione non restituisce dati di output e lpOutBuffer è NULL, DeviceIoControl usa lpBytesReturned. Dopo un'operazione di questo tipo, il valore di lpBytesReturned è privo di significato.
Se lpOverlapped non è NULL, lpBytesReturned può essere NULL. Se questo parametro non è NULL e l'operazione restituisce dati, lpBytesReturned non ha significato fino al completamento dell'operazione sovrapposta. Per recuperare il numero di byte restituiti, chiamare GetOverlappedResult. Se il parametro hDevice è associato a una porta di completamento I/O, è possibile recuperare il numero di byte restituiti chiamando GetQueuedCompletionStatus.
-
lpOverlapped [in]
-
Puntatore a una struttura OVERLAPPED .
Se hDevice è stato aperto senza specificare FILE_FLAG_OVERLAPPED, lpOverlapped viene ignorato.
Se hDevice è stato aperto con il flag FILE_FLAG_OVERLAPPED , l'operazione viene eseguita come operazione sovrapposta (asincrona). In questo caso , lpOverlapped deve puntare a una struttura OVERLAPPED valida che contiene un handle a un oggetto evento. In caso contrario, la funzione ha esito negativo in modi imprevedibili.
Per le operazioni sovrapposte, DeviceIoControl restituisce immediatamente e l'oggetto evento viene segnalato al termine dell'operazione. In caso contrario, la funzione non restituisce finché l'operazione non è stata completata o si verifica un errore.
Valore restituito
Se l'operazione viene completata correttamente, DeviceIoControl restituisce un valore diverso da zero.
Se l'operazione ha esito negativo o è in sospeso, DeviceIoControl restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Osservazioni
Questo codice di controllo non ha alcun file di intestazione associato. È necessario definire il codice di controllo e le strutture di dati come indicato di seguito.
#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;
I membri della struttura possono essere descritti come segue.
-
SpecData1
-
Valore opaco utilizzato per tipi di file speciali, ad esempio file SPECIALI, speciali per caratteri e FIFO.
-
SpecData2
-
Valore opaco utilizzato per tipi di file speciali, ad esempio file SPECIALI, speciali per caratteri e FIFO.
-
Secondi
-
Valore a 64 bit che rappresenta i secondi dal 1° gennaio 1970 (UTC).
-
nSeconds
-
Numero di nanosecondi da aggiungere al membro Seconds .
-
Filetype
-
Tipo di file NFS della condivisione.
Tipo di file NFS Descrizione NFS_TYPE_REG File normale. NFS_TYPE_DIR Una directory. NFS_TYPE_BLK Un file speciale a blocchi. NFS_TYPE_CHR Un file speciale di caratteri. NFS_TYPE_LNK Collegamento simbolico. NFS_TYPE_SOCK Socket di Windows. NFS_TYPE_FIFO Un file FIFO. -
Modalità
-
Modalità file.
-
NLink
-
Numero di collegamenti alla condivisione.
-
Uid
-
Identificatore utente UNIX (UID).
-
Gid
-
Identificatore del gruppo UNIX (GID).
-
Dimensione
-
Dimensioni del file, in byte.
-
Utilizzato
-
Dimensioni del file utilizzate, in byte. Corrisponde alle dimensioni del file.
-
Rdev
-
Identificatore del dispositivo.
-
Fsid
-
Identificatore del file system.
-
FileId
-
Identificatore di file.
-
AccessTime
-
Ora dell'ultimo accesso.
-
ModifyTime
-
Ora dell'ultima modifica.
-
ChangeTime
-
Ora dell'ultima modifica.
-
FileAttributes
-
Struttura NFS_FILE_ATTRIBUTES .
Nota
Per descrizioni più dettagliate dei membri di questa struttura, vedere la struttura fattr3 nella specifica del protocollo NFS versione 3 (come definito in RFC 1813).
-
Versione
-
Specifica se la connessione in cui è stato creato l'handle per la condivisione NFS è tramite il protocollo NFS Versione 2 o NFS Versione 3.
Valore Descrizione 2 NFS versione 2 3 NFS versione 3
Requisiti
| Requisito | Valore |
|---|---|
| Client minimo supportato |
Nessuno supportato |
| Server minimo supportato |
Windows Server 2008 |
| Fine del supporto client |
Nessuno supportato |
| Fine del supporto server |
Windows Server 2008 R2 |
Vedi anche