struktur WDF_REQUEST_COMPLETION_PARAMS (wdfrequest.h)

[Berlaku untuk KMDF dan UMDF]

Struktur WDF_REQUEST_COMPLETION_PARAMS berisi parameter yang terkait dengan penyelesaian permintaan I/O.

Sintaks

typedef struct _WDF_REQUEST_COMPLETION_PARAMS {
  ULONG            Size;
  WDF_REQUEST_TYPE Type;
  IO_STATUS_BLOCK  IoStatus;
  union {
    struct {
      WDFMEMORY Buffer;
      size_t    Length;
      size_t    Offset;
    } Write;
    struct {
      WDFMEMORY Buffer;
      size_t    Length;
      size_t    Offset;
    } Read;
    struct {
      ULONG  IoControlCode;
      struct {
        WDFMEMORY Buffer;
        size_t    Offset;
      } Input;
      struct {
        WDFMEMORY Buffer;
        size_t    Offset;
        size_t    Length;
      } Output;
    } Ioctl;
    struct {
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument1;
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument2;
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument3;
      union {
        PVOID     Ptr;
        ULONG_PTR Value;
      } Argument4;
    } Others;
    struct {
      PWDF_USB_REQUEST_COMPLETION_PARAMS Completion;
    } Usb;
  } Parameters;
} WDF_REQUEST_COMPLETION_PARAMS, *PWDF_REQUEST_COMPLETION_PARAMS;

Anggota

Size

Ukuran, dalam byte, dari struktur ini.

Type

Nilai WDF_REQUEST_TYPE yang mengidentifikasi jenis permintaan.

IoStatus

Struktur IO_STATUS_BLOCK untuk permintaan.

Parameters

Nilai khusus permintaan untuk permintaan tersebut.

Parameters.Write

Parameters.Write.Buffer

Handel ke objek memori kerangka kerja. Objek ini mengidentifikasi buffer yang ditentukan driver ketika memformat permintaan dan mengirimkannya ke target I/O.

Parameters.Write.Length

Panjang, dalam byte, transfer.

Parameters.Write.Offset

Alamat awal dalam buffer untuk transfer data.

Parameters.Read

Parameters.Read.Buffer

Handel ke objek memori kerangka kerja. Objek ini mengidentifikasi buffer yang ditentukan driver ketika memformat permintaan dan mengirimkannya ke target I/O.

Parameters.Read.Length

Panjang, dalam byte, transfer.

Parameters.Read.Offset

Alamat awal dalam buffer untuk transfer data.

Parameters.Ioctl

Parameters.Ioctl.IoControlCode

Parameters.Ioctl.Input

Parameters.Ioctl.Input.Buffer

Handel ke objek memori kerangka kerja. Objek ini mengidentifikasi buffer input yang ditentukan driver saat memformat permintaan dan mengirimkannya ke target I/O.

Parameters.Ioctl.Input.Offset

Alamat awal dalam buffer untuk transfer data.

Parameters.Ioctl.Output

Parameters.Ioctl.Output.Buffer

Handel ke objek memori kerangka kerja. Objek ini mengidentifikasi buffer output yang ditentukan driver saat memformat permintaan dan mengirimkannya ke target I/O.

Parameters.Ioctl.Output.Offset

Alamat awal dalam buffer untuk transfer data.

Parameters.Ioctl.Output.Length

Panjang, dalam byte, transfer.

Parameters.Others

Parameters.Others.Argument1

Penggunaan anggota ini ditentukan oleh tumpukan driver. Lihat Keterangan.

Parameters.Others.Argument1.Ptr

Parameters.Others.Argument1.Value

Parameters.Others.Argument2

Penggunaan anggota ini ditentukan oleh tumpukan driver.

Parameters.Others.Argument2.Ptr

Parameters.Others.Argument2.Value

Parameters.Others.Argument3

Penggunaan anggota ini ditentukan oleh tumpukan driver.

Parameters.Others.Argument3.Ptr

Parameters.Others.Argument3.Value

Parameters.Others.Argument4

Penggunaan anggota ini ditentukan oleh tumpukan driver.

Parameters.Others.Argument4.Ptr

Parameters.Others.Argument4.Value

Parameters.Usb

Untuk perangkat USB, anggota ini berisi pointer ke struktur WDF_USB_REQUEST_COMPLETION_PARAMS .

Parameters.Usb.Completion

Keterangan

Struktur WDF_REQUEST_COMPLETION_PARAMS digunakan sebagai input ke metode WdfRequestGetCompletionParams dan fungsi panggilan balik CompletionRoutine driver.

Dalam kedua kasus, struktur parameter penyelesaian berisi informasi yang valid hanya jika driver telah memformat permintaan dengan memanggil salah satu metode WdfIoTargetFormatXxx . Misalnya, lihat WdfIoTargetFormatRequestForRead.

Sebelum memanggil WdfRequestGetCompletionParams untuk mengambil informasi penyelesaian I/O untuk permintaan, driver harus terlebih dahulu memanggil WDF_REQUEST_COMPLETION_PARAMS_INIT untuk menginisialisasi struktur WDF_REQUEST_COMPLETION_PARAMS .

Anggota Parameters.Others.Argument adalah argumen kustom yang biasanya diteruskan driver ke tumpukan (dan dapat tiba kembali setelah permintaan selesai). Mereka digunakan untuk data dependen tumpukan driver non-standar. Misalnya, driver USB menentukan pointer ke URB di Parameters.Others.Argument1 saat mengirim permintaan IOCTL_INTERNAL_USB_SUBMIT_URB ke tumpukan USB. Demikian pula, driver Bluetooth menentukan penunjuk ke BRB (Blok Permintaan Bluetooth) di Parameters.Others.Argument1 saat menerima IOCTL_INTERNAL_BTH_SUBMIT_BRB.

Persyaratan

Persyaratan Nilai
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfrequest.h (termasuk Wdf.h)

Lihat juga

CompletionRoutine

IO_STATUS_BLOCK

WDF_REQUEST_COMPLETION_PARAMS_INIT

WDF_REQUEST_TYPE

WdfRequestGetCompletionParams