IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)
驅動程式可以使用 IOCTL_STORAGE_QUERY_PROPERTY 傳回儲存設備或配接器的屬性。 要求會指出要擷取的資訊類型,例如裝置的查詢數據或適配卡的功能和限制。 IOCTL_STORAGE_QUERY_PROPERTY 也可以用來判斷埠驅動程式是否支援特定屬性,或是可以使用後續的變更屬性要求來修改屬性描述元中的哪些欄位。
主要程序代碼
輸入緩衝區
Parameters.DeviceIoControl.InputBufferLength 指出 Irp-AssociatedIrp.SystemBuffer> 的參數緩衝區大小,其大小必須為 >= sizeof (STORAGE_PROPERTY_QUERY) 。
Irp->AssociatedIrp.SystemBuffer 包含 STORAGE_PROPERTY_QUERY 數據,指定要查詢裝置或配接器、要執行的查詢類型,以及查詢所需的任何其他參數,例如特定 SCSI 模式感知頁面的頁面代碼。 裝置屬性只能從裝置擷取;嘗試從適配卡擷取裝置屬性會造成錯誤。
Parameters.DeviceIoControl.OutputBufferLength 指出可寫入 Irp-AssociatedIrp.SystemBuffer> 的位元元數目。 OutputBufferLength 可以是零,以判斷屬性是否存在,而不擷取其數據。
輸入緩衝區長度
Parameters.DeviceIoControl.InputBufferLength 指出 Irp-AssociatedIrp.SystemBuffer> 的參數緩衝區大小,其大小必須為 >= sizeof (STORAGE_PROPERTY_QUERY) 。
輸出緩衝區
驅動程式會將查詢數據傳回至 Irp-AssociatedIrp.SystemBuffer> 的緩衝區。 您可以將不同數量的總線特定資料附加至 結構。
輸出緩衝區長度
將傳回的結構轉換成 STORAGE_DESCRIPTOR_HEADER ,並檢查其 Size 成員,以判斷結構實際需要的位元元組數目。
狀態區塊
[ 資訊 ] 位元位會設定為傳回的位元組數目。 [ 狀態 ] 欄位會設定為 [STATUS_SUCCESS],或可能設定為 [STATUS_INVALID_DEVICE_REQUEST]、[STATUS_INVALID_PARAMETER] 或 [STATUS_NOT_SUPPORTED]。
規格需求
需求 | 值 |
---|---|
標頭 | ntddstor.h (包含 Ntddstor.h) |