次の方法で共有


コントロール コードのDA_GET_NFS_ATTRIBUTES

DA_GET_NFS_ATTRIBUTES コントロール コードは、NFS 共有に関する追加情報を照会します。

この操作を実行するには、次のパラメーターを使用して DeviceIoControl 関数を呼び出します。

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

パラメーター

hDevice [in]

NFS 共有上のファイルへのハンドル。 このハンドルを取得するには、 CreateFile 関数を呼び出します。

dwIoControlCode [in]

操作の制御コード。 この操作 にはDA_GET_NFS_ATTRIBUTES を使用します。

lpInBuffer

この操作では使用されません。NULL に設定 します

nInBufferSize [in]

この操作では使用されません。0 に設定します。

lpOutBuffer [out]

NFS_FILE_ATTRIBUTES構造体を含む出力バッファーへのポインター。 詳細については、「解説」を参照してください。

nOutBufferSize [in]

出力バッファーのサイズ (バイト単位)。

lpBytesReturned [out]

出力バッファーに格納されているデータのサイズをバイト単位で受け取る変数へのポインター。

出力バッファーが小さすぎると、呼び出しは失敗し、GetLastError はERROR_INSUFFICIENT_BUFFERを返し、lpBytesReturned は 0 です。

lpOverlappedNULL の場合、lpBytesReturnedNULL にすることはできません。 操作で出力データが返されず、 lpOutBufferNULL の場合でも、 DeviceIoControllpBytesReturned を使用します。 このような操作の後、 lpBytesReturned の値は意味がありません。

lpOverlappedNULL でない場合は、lpBytesReturnedNULL を指定できます。 このパラメーターが NULL ではなく、操作がデータを返す場合、重複する操作が完了するまで lpBytesReturned は意味がありません。 返されるバイト数を取得するには、 GetOverlappedResult を呼び出します。 hDevice パラメーターが I/O 入力候補ポートに関連付けられている場合は、GetQueuedCompletionStatus を呼び出して返されるバイト数を取得できます。

lpOverlapped [in]

OVERLAPPED 構造体へのポインター。

FILE_FLAG_OVERLAPPEDを指定せずに hDevice を開いた場合、lpOverlapped は無視されます。

hDeviceFILE_FLAG_OVERLAPPED フラグで開かれた場合、操作は重複した (非同期) 操作として実行されます。 この場合、 lpOverlapped は、イベント オブジェクトへのハンドルを含む有効な OVERLAPPED 構造体を指す必要があります。 それ以外の場合、関数は予測できない方法で失敗します。

重複する操作の場合、 DeviceIoControl は直ちにを返し、操作が完了するとイベント オブジェクトが通知されます。 それ以外の場合、操作が完了するかエラーが発生するまで、関数は を返しません。

戻り値

操作が正常に完了すると、 DeviceIoControl は 0 以外の値を返します。

操作が失敗した場合、または保留中の場合、 DeviceIoControl は 0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

注釈

このコントロール コードには、関連付けられたヘッダー ファイルがありません。 制御コードとデータ構造は、次のように定義する必要があります。

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

構造体メンバーは、次のように記述できます。

SpecData1

ブロック特殊、文字特殊、FIFO ファイルなどの特殊なファイル・タイプに使用される不透明値。

SpecData2

ブロック特殊、文字特殊、FIFO ファイルなどの特殊なファイル・タイプに使用される不透明値。

1970 年 1 月 1 日以降の秒数を表す 64 ビット値 (UTC)。

nSeconds

Seconds メンバーに追加するナノ秒数。

Filetype

共有の NFS ファイルの種類。

NFS ファイルの種類 説明
NFS_TYPE_REG
通常のファイル。
NFS_TYPE_DIR
ディレクトリ。
NFS_TYPE_BLK
ブロック特殊ファイル。
NFS_TYPE_CHR
文字特殊ファイル。
NFS_TYPE_LNK
シンボリック リンク。
NFS_TYPE_SOCK
Windows ソケット。
NFS_TYPE_FIFO
FIFO ファイル。

 

モード

ファイル モード。

NLink

共有へのリンクの数。

Uid

UNIX ユーザー識別子 (UID)。

Gid

UNIX グループ識別子 (GID)。

サイズ

ファイル サイズ (バイト単位)。

使用

使用されるファイル サイズ (バイト単位)。 これはファイル サイズと同じです。

Rdev

デバイス識別子。

Fsid

ファイル システム識別子。

FileId

ファイル識別子です。

AccessTime

最後のアクセス時刻。

ModifyTime

最後の変更時刻。

ChangeTime

最後の変更時刻。

FileAttributes

NFS_FILE_ATTRIBUTES構造体。

Note

この構造体のメンバーの詳細については、NFS バージョン 3 プロトコル仕様 (RFC 1813 で定義) の fattr3 構造体を参照してください。

 

バージョン

NFS 共有へのハンドルが作成された接続が NFS バージョン 2 または NFS バージョン 3 プロトコルを介しているかどうかを指定します。

説明
2
NFS バージョン 2
3
NFS バージョン 3

 

必要条件

要件
サポートされている最小のクライアント
サポートなし
サポートされている最小のサーバー
Windows Server 2008
クライアント サポートの終了
サポートなし
サーバー サポートの終了
Windows Server 2008 R2

関連項目

DeviceIoControl