PVENDOR_OR_CLASS_REQUEST_CONTROL p = reinterpret_cast<PVENDOR_OR_CLASS_REQUEST_CONTROL>( I.IoctlBuffer() );
USHORT nUrbFunction = 0;
// Determine the URB function based on 'RequestType' and 'Recepient' passed // down from user mode switch(((p->requestType) << 2) | (p->recepient )) { case 0x04: nUrbFunction = URB_FUNCTION_CLASS_DEVICE; break; case 0x05: nUrbFunction = URB_FUNCTION_CLASS_INTERFACE; break; case 0x06: nUrbFunction = URB_FUNCTION_CLASS_ENDPOINT; break; case 0x07: nUrbFunction = URB_FUNCTION_CLASS_OTHER; break; case 0x08: nUrbFunction = URB_FUNCTION_VENDOR_DEVICE; break; case 0x09: nUrbFunction = URB_FUNCTION_VENDOR_INTERFACE; break; case 0x0A: nUrbFunction = URB_FUNCTION_VENDOR_ENDPOINT; break; case 0x0B: nUrbFunction = URB_FUNCTION_VENDOR_OTHER; break; default: return STATUS_INVALID_PARAMETER; break; }
文章评论(0条评论)
登录后参与讨论