Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C/C++µ×²ãʵÏÖÖ¸¶¨´ÅÅÌÖ»¶Á

  C/C++µ×²ãʵÏÖÖ¸¶¨´ÅÅÌÖ»¶Á ÊÕ²Ø
Ñà¿ñͽдµÄÇý¶¯¹Ò¹³£¬ÏÞÖÆ´ÅÅÌÖ»¶Á£¬ ÓÃÓÚ±£Ö¤ÉæÃܼÆËã»úµÄÎȶ¨£¬Ï൱ÓÚ½«´ÅÅ̱ä³ÉROM #include "ntddk.h"
#include
#include #define DRIVERNAME "OnlyRead(GongXiPeng!)"     // for use in messages typedef struct tagDEVICE_EXTENSION {
PDEVICE_OBJECT DeviceObject;   // device object this extension belongs to
PDEVICE_OBJECT LowerDeviceObject;  // next lower driver in same stack
PDEVICE_OBJECT Pdo;      // the PDO
IO_REMOVE_LOCK RemoveLock;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION; VOID RemoveDevice(IN PDEVICE_OBJECT fdo);
NTSTATUS CompleteRequest(IN PIRP Irp, IN NTSTATUS status, IN ULONG_PTR info);
NTSTATUS DispatchForSCSI(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT pdo); NTSTATUS DispatchAny(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS DispatchPower(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS DispatchPnp(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS DispatchWmi(IN PDEVICE_OBJECT fido, IN PIRP Irp);
ULONG GetDeviceTypeToUse(PDEVICE_OBJECT pdo);
NTSTATUS StartDeviceCompletionRoutine(PDEVICE_OBJECT fido, PIRP Irp, PDEVICE_EXTENSION pdx);
NTSTATUS UsageNotificationCompletionRoutine(PDEVICE_OBJECT fido, PIRP Irp, PDEVICE_EXTENSION pdx); VOID DriverUnload(IN PDRIVER_OBJECT fido); NTSTATUS
DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    )
{
int i;
KdPrint(("×¼±¸Çý¶¯¼ÓÔØ"));
UNREFERENCED_PARAMETER(RegistryPath);
DriverObject->DriverUnload = DriverUnload;
DriverObject->DriverExtension->AddDevice = AddDevice;
for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; ++i)
  DriverObject->MajorFunction[i] = DispatchAny;
DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower;


Ïà¹ØÎĵµ£º

50¸öc/c++Ô´´úÂëÍøÕ¾

C/C++ÊÇ×îÖ÷ÒªµÄ±à³ÌÓïÑÔ¡£ÕâÀïÁгöÁË50ÃûÓÅÐãÍøÕ¾ºÍÍøÒ³Çåµ¥£¬ÕâÐ©ÍøÕ¾Ìṩc/c++Ô´´úÂë ¡£Õâ·ÝÇåµ¥ÌṩÁËÔ´´úÂëµÄÁ´½ÓÒÔ¼°ËüÃǵÄС˵Ã÷¡£ÎÒÒѾ¡Á¦°üÀ¨×î¼ÑµÄC/C++Ô´´úÂëµÄÍøÕ¾¡£Õâ²»ÊÇÒ»¸öÍêÕûµÄÇåµ¥£¬ÄúÓн¨Òé¿ÉÒÔÁªÏµÎÒ£¬ÎÒ½«»¶Ó­ÄúµÄ½¨ Ò飬ÒÔ½øÒ»²½¼ÓÇ¿Õâ·½ÃæµÄÇåµ¥¡£ 
1¡¢http://snippets.dzone.com/tag/c/&nbs ......

C/C++ÖпÕÖ¸ÕëÓë0ÓëNULLºÍÆäËûÈô¸ÉÎÊÌâС½á

ʲôÊÇ¿ÕÖ¸Õë³£Á¿£¨null pointer constant£©?
[6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.
ÕâÀï¸æËßÎÒÃÇ£º0¡¢0L¡¢'\0'¡¢3 - 3¡¢0 * 17 £¨ËüÃǶ¼ÊÇ“integer constant expression”£©ÒÔ¼° (void*)0 µÈ¶¼ÊÇ¿Õ ......

c°æµÄ»Øµ÷º¯ÊýÓëc++°æµÄÐ麯Êý

CÓïÑԵĻص÷º¯Êý˼Ïë´úÂ룺
#include <stdio.h>
void *max(void *base, unsigned int nmemb, unsigned int size,
    int (*compar)(const void *, const void *))
{
    int i;
    void* max_data = base;
    char* tmp = base;
 &nbs ......

Ñ¡ÔñÅÅÐòÓëðÅÝ·¨ÅÅÐòµÄC´úÂëʵÏÖ

Ñ¡ÔñÅÅÐò·¨ÀàËÆÎÒÃÇÈËΪµÄÅÅÐòϰ¹ß£º´ÓÊý¾ÝÖÐÑ¡Ôñ×îСµÄͬµÚÒ»¸öÖµ½»»»£¬ÔÚ´ÓʡϵIJ¿·ÖÖÐÑ¡Ôñ×îСµÄÓëµÚ¶þ¸ö½»»»£¬ÕâÑùÍù¸´ÏÂÈ¥……
Ñ¡ÔñÅÅÐòµÄƽ¾ùʱ¼ä¸´ÔӶȱÈðÅÝÅÅÐòµÄÉÔµÍ:
ͬÑùÊý¾ÝµÄÇé¿öÏ£¬2ÖÖËã·¨µÄÑ­»·´ÎÊýÊÇÒ»ÑùµÄ£¬µ«Ñ¡ÔñÅÅÐòÊÇÒ»¶Ô¶àµÄ±È½Ï£¬Ã¿ÌËÖ»½øÐÐ0µ½1´Î½»»»£¬¶øÃ°ÅÝÅÅÐòÊÇÏàÁÚÁ½Á½±È½Ï£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ