Menginisialisasi Target I/O Umum
Kerangka kerja menginisialisasi target I/O lokal driver untuk perangkat ketika driver memanggil WdfDeviceCreate. Untuk mengambil handel ke target I/O lokal perangkat, driver memanggil WdfDeviceGetIoTarget.
Sebagian besar driver mengirim permintaan hanya ke target I/O lokal mereka.
Untuk menginisialisasi target I/O jarak jauh untuk perangkat, driver harus:
Panggil WdfIoTargetCreate untuk membuat objek target I/O.
Panggil WdfIoTargetOpen untuk membuka target I/O sehingga driver dapat mengirim permintaan ke dalamnya.
Ketika driver memanggil WdfIoTargetOpen, biasanya mengidentifikasi target I/O jarak jauh dengan menyediakan string Unicode yang mewakili nama objek. Nama ini dapat mengidentifikasi perangkat, file, atau antarmuka perangkat. Kerangka kerja mengirimkan permintaan I/O ke bagian atas tumpukan driver yang mendukung nama objek.
Jarang, driver mungkin mengidentifikasi target I/O jarak jauh dengan memasok pointer ke struktur DEVICE_OBJECT Windows Driver Model (WDM). Pointer ini mengidentifikasi driver yang berbeda dalam tumpukan driver panggilan. Driver berbasis kerangka kerja jarang menggunakan teknik ini karena jarang memiliki akses ke struktur DEVICE_OBJECT driver lain.
Contoh berikut menunjukkan bagaimana driver sampel Ndisedge menggunakan teknik di atas untuk membuat dan membuka target I/O jarak jauh:
status = WdfIoTargetCreate(Adapter->WdfDevice,
WDF_NO_OBJECT_ATTRIBUTES,
&Adapter->IoTarget);
if (!NT_SUCCESS(status)) {
DEBUGP(MP_ERROR, ("WdfIoTargetCreate failed 0x%x\n",
status));
return status;
}
WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME(&openParams,
&fileName,
STANDARD_RIGHTS_ALL
);
status = WdfIoTargetOpen(Adapter->IoTarget,
&openParams);
if (!NT_SUCCESS(status)) {
DEBUGP(MP_ERROR, ("WdfIoTargetOpen failed 0x%x\n", status));
return status;
}