次の方法で共有


IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG IOCTL (ntddstor.h)

ドライバーは、 IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG を使用して、デバイスから内部状態データを取得できます。

メジャー コード

IRP_MJ_INTERNAL_DEVICE_CONTROL

[入力バッファー]

クエリを実行するデータの種類を識別するGET_DEVICE_INTERNAL_STATUS_DATA_REQUEST構造体。

入力バッファーの長さ

Parameters.DeviceIoControl.InputBufferLength は、Irp-AssociatedIrp.SystemBuffer> のパラメーター バッファーのサイズ (バイト単位) を示します。これは、 = sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST)である必要があります>。

出力バッファー

ドライバーは、Irp-AssociatedIrp.SystemBuffer> のバッファーに出力を返します。 このバッファーには、デバイスの内部状態を持つ DEVICE_INTERNAL_STATUS_DATA 構造体が含まれています。

出力バッファーの長さ

I/O スタックの場所にある Parameters.DeviceIoControl.OutputBufferLength は、パラメーター バッファーのサイズ (バイト単位) を示します。これは、 = sizeof(DEVICE_INTERNAL_STATUS_DATA) である>必要があります。

入力/出力バッファー

該当なし

入力/出力バッファーの長さ

該当なし

ステータス ブロック

Irp->要求が成功した場合、IoStatus.Status はSTATUS_SUCCESSに設定されます。 それ以外の場合、Status は NTSTATUS コードとして適切なエラー条件に設定されます。 詳細については、「 NTSTATUS 値」を参照してください。

注釈

IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOGは、任意のストレージ デバイスからホストによって開始されたデバイス テレメトリ ログを返します。 次の擬似コードは、テレメトリ データ ヘッダーを要求する方法を示しています。

// Allocate a GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST structure, then
// initialize it with a data header request:
//   request.Version = sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST);
//   request.Size = sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST);
//   request.RequestDataType = DeviceCurrentInternalStatusDataHeader;

// Allocate a DEVICE_INTERNAL_STATUS_DATA structure in which
// to return the header data, with outputBufferLength set to
// (sizeof(DEVICE_INTERNAL_STATUS_DATA) + 512).

// Get the device internal status data.
BOOL result = TRUE;
ULONG returnedLength = 0;
result = DeviceIoControl(deviceHandle,
            IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG,
            &request,
            sizeof(GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST),
            &outputBuffer,
            outputBufferLength,
            &returnedLength,
            NULL);

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 2004
Header ntddstor.h

こちらもご覧ください

DEVICE_INTERNAL_STATUS_DATA

GET_DEVICE_INTERNAL_STATUS_DATA_REQUEST