USBFN_GET_ATTACH_ACTION fungsi panggilan balik (usbfnattach.h)
Implementasi driver filter yang dipanggil ketika pengisi daya dilampirkan ke port.
Sintaks
USBFN_GET_ATTACH_ACTION UsbfnGetAttachAction;
NTSTATUS UsbfnGetAttachAction(
[in] PVOID Context,
[out] PUSBFN_ON_ATTACH OnAttach
)
{...}
Parameter
[in] Context
Penunjuk ke konteks yang ditentukan driver.
[out] OnAttach
Penunjuk ke struktur USBFN_ON_ATTACH yang dialokasikan penelepon yang diisi driver dengan jenis pemasangan dan port.
Nilai kembali
Jika operasi berhasil, fungsi panggilan balik harus mengembalikan STATUS_SUCCESS, atau nilai status lain yang NT_SUCCESS(status) sama dengan TRUE. Jika tidak, itu harus mengembalikan nilai status yang NT_SUCCESS(status) sama dengan FALSE.
Keterangan
Untuk mendukung deteksi pemasangan dan pencopotan, driver filter usb yang lebih rendah harus menerbitkan dukungannya. Selama proses penerbitan, driver juga mendaftarkan implementasi fungsi panggilan balik ini. Untuk informasi selengkapnya, lihat driver filter USB untuk mendukung pengisi daya kepemilikan.
Contoh
NTSTATUS
UsbLowerFilter_GetAttachAction(
__in PVOID Context,
__out PUSBFN_ON_ATTACH OnAttach
)
{
NTSTATUS Status;
PPDCP_CONTEXT PdcpContext = NULL;
LARGE_INTEGER Timeout;
PAGED_CODE();
// Get driver context
PdcpContext = DeviceGetUsbLowerFilterContext((WDFDEVICE)Context);
// Clear the event
KeClearEvent(&PdcpContext->AbortAttachOperation);
// Wait for a while
Timeout.QuadPart = WDF_REL_TIMEOUT_IN_MS(PdcpContext->DetectionDelayInms);
Status = KeWaitForSingleObject(
&PdcpContext->AbortAttachOperation,
Executive,
KernelMode,
FALSE,
&Timeout);
switch (Status)
{
case STATUS_SUCCESS:
// The abort event was set.
Status = STATUS_REQUEST_ABORTED;
break;
case STATUS_TIMEOUT:
Status = STATUS_SUCCESS;
break;
default:
break;
}
if (NT_SUCCESS(Status))
{
OnAttach->AttachAction = PdcpContext->CurrentAttachAction;
OnAttach->PortType = PdcpContext->CurrentPortType;
}
return Status;
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Versi KMDF minimum | 1,0 |
Versi UMDF minimum | 2.0 |
Header | usbfnattach.h |
IRQL | PASSIVE_LEVEL |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk